我正在定义一个带有可选参数的方法.通常我会使用这样的东西:
sub foo {
($self, $optarg) = @_;
$optarg ||= 1;
}
Run Code Online (Sandbox Code Playgroud)
我希望将可选参数视为布尔值,默认值为true.这显然不适用于上述内容,因为$optarg如果未传入参数,则将评估为false.
有没有办法区分传递参数的缺失和评估为false的值?
Bor*_*din 10
如果你有Perl版本5.10或更高版本,那么你可以替换$optarg ||= 1为$optarg //= 1,$optarg只有在它修改时才会修改undef.
或者,如果您希望允许undef作为显式false值传递,您可以说$optarg = 1 if @_ < 2.
| 归档时间: |
|
| 查看次数: |
739 次 |
| 最近记录: |