5

$_Perlの関数に相当するものはありますか?私はC#でいくつかの古いperlスクリプトを書き直していますが、perlを学んだことはありません。これが私が理解しようとしていることの例です

sub copyText {
        while($_[0]){
            $_[1]->Empty();
            $_[0] = $_[1]->IsText();
            sleep(1);
         }
4

2 に答える 2

11

まず$_、関数ではありません。これは単なる通常の変数です (たまたま多くのビルトインによって読み取られ、変更されます)。

第二に、投稿したコードは を使用していません$_@_パラメータリストの要素にアクセスしています。

投稿したコードのより読みやすいバージョンは次のようになります。

sub copyText {
   my ($arg1, $arg2) = @_;
   while ($arg1) {
      $arg2->Empty();
      $arg1 = $arg2->IsText();
      sleep(1);
   }

   $_[0] = $arg1;   # arg1 is passed by reference
}
  • arg1 は、参照によって渡されるブール値です。
  • Emptyarg2 は、 という名前のメソッドとという名前のメソッドを持つある種のオブジェクトIsTextです。

申し訳ありませんが、私は C# を知りませんが、これで先に進むことができれば幸いです。

于 2012-11-15T20:06:45.310 に答える
0

Perlの$_機能

関数ではありません。「それ」を意味する代名詞です。

別の特別な変数 があり@_、これは「彼ら」を意味する代名詞です。

C# には類似物はありません。

于 2012-11-15T22:54:20.750 に答える