$_
Perlの関数に相当するものはありますか?私はC#でいくつかの古いperlスクリプトを書き直していますが、perlを学んだことはありません。これが私が理解しようとしていることの例です
sub copyText {
while($_[0]){
$_[1]->Empty();
$_[0] = $_[1]->IsText();
sleep(1);
}
まず$_
、関数ではありません。これは単なる通常の変数です (たまたま多くのビルトインによって読み取られ、変更されます)。
第二に、投稿したコードは を使用していません$_
。@_
パラメータリストの要素にアクセスしています。
投稿したコードのより読みやすいバージョンは次のようになります。
sub copyText {
my ($arg1, $arg2) = @_;
while ($arg1) {
$arg2->Empty();
$arg1 = $arg2->IsText();
sleep(1);
}
$_[0] = $arg1; # arg1 is passed by reference
}
Empty
arg2 は、 という名前のメソッドとという名前のメソッドを持つある種のオブジェクトIsText
です。申し訳ありませんが、私は C# を知りませんが、これで先に進むことができれば幸いです。
Perlの
$_
機能
関数ではありません。「それ」を意味する代名詞です。
別の特別な変数 があり@_
、これは「彼ら」を意味する代名詞です。
C# には類似物はありません。