2013-02-12 63 views
2

Catalyst有没有办法指定sub接受0-n参数,比如0-1?因此,一个动作可能是这样的:catalyst action accept 0 -n args

sub add :Local :Args(#between 0 and 1) { 
    my ($self, $c) = @_; 
    #catalyst code 
} 

我知道,这样的事情也许可以用正则表达式莫名其妙地解决了,但我不知道是否有办法通过参数数量活动指定它做它修改?谢谢!

+1

您可以创建一个Catalyst :: DispatchType子类来执行此操作,但似乎都不存在。 – ikegami 2013-02-12 08:10:02

+1

你可以使用':Regex'实现你想要的。当然,你也可以完全避免使用':Args'或者':Regex',并且如果你的参数太多,会抛出一个错误。 – ikegami 2013-02-12 08:13:20

回答

2

除非您正在链接另一个动作,否则您可以完全删除:Args并测试是否提供了参数。从documentation

否:参数意味着任何数量的参数被采取。