perl中@_和$_的用法似乎很神秘啊……求牛人指点……
今天看教程,对@_和$_用法感觉很迷惑……比如,在正则表达式这一部分,有这样的程序:
$_="abcd fed ddd";
if(/abcd.*fed/)
{print "matched!"}
else
{print"unmatched!"}
为什么if语句的条件判断部分自动就知道要进行判断的语句是指$_变量中存放的语句?
还有,在学到任意参数数目的子函数调用部分时,有这样的代码:
$maximum = &max(3,5,33,23,1);
sub max
{
my($max_so_far=)=shift @_;
foreach(@_)
{
if($_>$max_so_far)
{
max_so_far=$_
}
}
}
我明白子函数调用的时候参数默认保存在了@_中,但是foreach循环中为什么@_中的每一个数值会自动赋值给$_呢?