是否有与Perl的$_
功能相同的功能?我正在用C#重写一些旧的perl脚本,我从来没有学过任何perl。下面是我想弄清楚的一个例子
sub copyText {
while($_[0]){
$_[1]->Empty();
$_[0] = $_[1]->IsText();
sleep(1);
}
答案 0 :(得分:11)
首先,$_
不是函数。它只是一个普通的变量(恰好被很多内置函数读取和更改)。
其次,您发布的代码不使用$_
。它正在访问@_
的元素,即参数列表。
您发布的代码的更易读的版本将是:
sub copyText {
my ($arg1, $arg2) = @_;
while ($arg1) {
$arg2->Empty();
$arg1 = $arg2->IsText();
sleep(1);
}
$_[0] = $arg1; # arg1 is passed by reference
}
Empty
,其中一个名为IsText
。对不起,我不知道C#,但希望你能继续这样做。
答案 1 :(得分:0)
Perl的
$_
函数
这不是一个功能。这是代词'意思'。
还有另一个特殊变量@_
,这是一个代词,意思是'他们'。
C#中没有类似的东西。