其实@_就是默认数组。它会根据语言环境自动获取某些变量或数组,这样的好处是语言的灵活性很大,同时也会让初学者很容易迷惑。你多动手试试,多用用就好了。这个是常用的特殊变量。要熟练掌握的。
在子程序中默认数组@_中保存了传变的变量例sub a {my @list=@_;}&a(1,2,3);那么在子程序a中@_的数值就是(1,2,3);在子程序中也常用shift,例如:my $a=shift;这里shift将@_中第一个单元值赋予变量$a并删除(即$a=1),这个时候@_=(2,3)。