大家都知道在子程序中可以通过my ($a, $b) = @_;来获取参数,
但是当参数为一个的时候,经常有人会写成 my $a = @_;
这时候是标量上下文,$a的值始终为@_的个数,因此在你搞错的时候,perl无法提出警告。
想要获取入参时,要改为my ($a) = @_; 这才是列表上下文,
所以记住在获取子程序的参数时,无论有多少个入参,都应该写为my () = @_。
还要注意的是my()操作符时,请记住,在my不使用括号时,只能声明单个词法变量。
my $a, $b; #只声明了$a
my ($a, $b); #两个都声明