在perl中,定义一个函数的时候,不需要在圆括号内指定具体的参数,所有的参数都从@_ 这个列表中得到
代码示例:
sub test { my ($a, $b) = @_; print qq{$a\t$b\n}; } sub test { my $a = shift; my $b = shift; print qq{$a\t$b\n}; }
这样写当然没有问题,但是有一点不足之处在于,缺少了圆括号内的形参列表,没法直观的一眼看出这个函数需要几个参数
所以perl 中函数定义的时候支持下面这种写法
sub test($$){ my ($a, $b) = @_; print qq{$a\t$b\n}; }
圆括号内的$$不是内置变量的那个$$(返回当前脚本的pid), 这里的$$只是只是参数的个数,因为这个函数只有两个参数,所以是$$
当函数有3个参数时,可以写作($$$), 这里的$没有什么实际含义,只是代表参数个数。