$_和$&各代表什么呢?

$_和$&各代表什么呢?

问题如上!
谢谢!
$_       默认的输入和模式搜索空间。
$&      含有上次成功的模式匹配所匹配到的字符串
$_ 就是“它”
谢谢二位!大概明白了!
斑竹的解释有点高深!
这种问题也拿来问!


QUOTE:
原帖由 andy820303 于 2008-2-2 13:34 发表
谢谢二位!大概明白了!
斑竹的解释有点高深!

你之所以觉得高深,是因为没有从语义的角度去理解程序的句子。
试设想,如果你和另一个人对话,反复提到一件事物,你会每次都去说它的名字吗?
答案是不会,而是会用一个代词“它”来指代这件事物。
因此当我们写这样的一段儿程序时:

QUOTE:
读入一行文本到 $this_line
去掉 $this_line 文本末尾的换行符(如果有的话)
把 $this_line 转换成大写
把 $this_line 按空格切割成多个字段,然后重新用逗号连接起来再赋给 $this_line
打印 $this_line

那么我们总是提到 $line 难道不觉得麻烦吗?
现实生活中一般会用“它”代替:

QUOTE:
读入一行文本
去掉它末尾的换行符(如果有的话)
把它转换成大写
把它按空格切割成多个字段,然后用逗号重新连接起来再赋给它。
打印它。

写成程序就是:

[Copy to clipboard] [ - ]
CODE:
while(<FH>){
    chomp;
    tr/[a-z]/[A-Z]/;
    $_ = join ',', split;
    print;
}

$_ 就是“它”——如同自然语言中“它”的用法一样,当我们需要频繁地操作一个对象($this_line)时,我们不会总是提到它的名字,而只是简单地说:它!($_)
学Perl是在学英语
$ => the
@ => those/these

print if length;
谢谢二位斑竹的指点!
茅塞顿开!

刚开始学perl,今天是第3天,问题确实有点低级,二位斑竹的敬业态度真是让人感动阿!^_^
it, the, these的解释太赞了!
excellent~~!!!