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

麦兜和小可的舅舅 2012-12-24 09:09:02
今天看教程,对@_和$_用法感觉很迷惑……比如,在正则表达式这一部分,有这样的程序:
$_="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循环中为什么@_中的每一个数值会自动赋值给$_呢?
...全文
166 3 打赏 收藏 转发到动态 举报
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
薛定谔之死猫 2012-12-24
  • 打赏
  • 举报
回复
Perl的魅力部分来自于这些潜规则!
fibbery 2012-12-24
  • 打赏
  • 举报
回复
你编写的函数的参数,可以使用@_来获取。 Perl内建函数或操作符如果不传递参数,默认使用$_。
zjs100901 2012-12-24
  • 打赏
  • 举报
回复
Perl 就是这样设计的。而且还不止 @_ 和 $_ 呢,还有 $` $& $' 等等。

37,720

社区成员

发帖
与我相关
我的任务
社区描述
JavaScript,VBScript,AngleScript,ActionScript,Shell,Perl,Ruby,Lua,Tcl,Scala,MaxScript 等脚本语言交流。
社区管理员
  • 脚本语言(Perl/Python)社区
  • IT.BOB
加入社区
  • 近7日
  • 近30日
  • 至今

试试用AI创作助手写篇文章吧