首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > perl python >

perl中@_跟$_的用法似乎很神秘啊求牛人指点…

2013-01-08 
perl中@_和$_的用法似乎很神秘啊……求牛人指点……今天看教程,对@_和$_用法感觉很迷惑……比如,在正则表达式这

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循环中为什么@_中的每一个数值会自动赋值给$_呢?
[解决办法]
Perl 就是这样设计的。而且还不止 @_ 和 $_ 呢,还有 $` $& $' 等等。
[解决办法]
你编写的函数的参数,可以使用@_来获取。
Perl内建函数或操作符如果不传递参数,默认使用$_。
[解决办法]
Perl的魅力部分来自于这些潜规则!

热点排行