是perl中默认的数组变量
我举个例子吧 。 比如说你想移除数组中的一个元素赋值给一个变$value
1、你有定义某个数组如@abcd
my $value=shift @abcd;
2、你没有定义任何数组
my $value=shift @_; 和上例等效
这里perl会隐式的选择@_
是 sub 子函数 中 的 默认参数列表 ;
例如 有下面 一段 :
my $max_number = &max(1,2);
print "1 and 2 , the max number is $max_number\n";
sub max{
my ($num1,$num2) = @_[0,1]; ## 取出参数列表中的元素。
........此处省略求max运算
}
在子函数中 直接 shift; 就可以从 @_ 的 前端 弹出 一个 元素。
然可以在windows平台下使用,有很多软件完成这一任务如activeperl。
perl内部使用了很多内置变量,这是描述性语言为了简洁易写性而搞的一种“把戏”,但是其易读性让初学者很不爽,可以把它们看作是编程语言里面的宏。