我想了解是否可以在其中包含子原型(prototype)和 可选参数。有了原型(prototype),我可以做到这一点:
sub some_sub (\@\@\@) {
...
}
my @foo = qw/a b c/;
my @bar = qw/1 2 3/;
my @baz = qw/X Y Z/;
some_sub(@foo, @bar, @baz);
这很好,可读性强,但在我尝试做的那一刻
some_sub(@foo, @bar);
甚至
some_sub(@foo, @bar, ());
我收到错误:
Not enough arguments for main::some_sub at tablify.pl line 72, near "@bar)"
或
Type of arg 3 to main::some_sub must be array (not stub) at tablify.pl line 72, near "))"
是否可以有一个原型(prototype)和可变数量的参数?还是可以通过签名实现类似的东西?
我知道这可以通过始终传递 arrayrefs 来完成我想知道是否还有其他方法。毕竟,TMTOWTDI。
最佳答案
分号后的所有参数都是可选的:
sub some_sub(\@\@;\@) {
}
关于perl - 我可以在 perl 子原型(prototype)中使变量可选吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/66889565/