假设我有
use v5.026;
use feature 'signatures';
sub foo ($opt1, $opt2) {
say $opt1 if $opt2;
}
main::foo(1,2);
main::foo(1);
现在我想在有和没有 opt2 的情况下调用 foo
:
foo(1); # not currently accepted
foo(1,2); # works fine
最佳答案
带有子例程签名的可选参数需要一个定义的默认值,这由 = default_value_expression
完成。您可以将其硬设置为 undef
:
sub foo ($opt1, $opt2 = undef) {
say $opt1 if $opt2;
}
关于perl - 如何在签名中声明可选参数?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54507624/