2011-07-06 8 views

答えて

5

@_は、サブルーチンのパラメータを保持する変数です。 デバッガでVを見ると、デバッガ内部のサブルーチンのパラメータの一部が表示されているようです。

+0

これらのパラメータはどういう意味が私には役に立たないようだ –

0

http://perldoc.perl.org/perlvar.html#General-Variables

サブルーチン内の配列は@_そのサブルーチンに渡されたパラメータを含んでいます。サブルーチン、@_ @_$_


use Data::Dumper; 

foo(0,'_',*main::_,0,-1); 

sub foo { 
    print Dumper(\@_); 
} 
の配列と等価である、配列演算子プッシュ、ポップ、シフト、および本質的にアンシフト


のデフォルト配列であるインサイド

出力:

$VAR1 = [ 
      0, 
      '_', 
      *::_, 
      0, 
      -1 
     ]; 
+0

コードではありません。つまり、それはデバッガ出力です。 '@ _ 'の内容を表示するだけです。 – hobbs

+0

コードではありませんか? – vol7ron

+0

"あなたのコードはデフォルトの' @ _'配列の内容を上書きしています。 " msgstr "あなたはリストの割り当てを実行しています" msgid。いいえ、いいえ。 – hobbs

1

l perldocのATESTバージョンでは、あなたがperlvarから必要な部分だけを抽出し-vスイッチと変数アップを見てみましょう:?

$ perldoc -v '@_' 
    @ARG 
    @_  Within a subroutine the array @_ contains the parameters passed 
      to that subroutine. See perlsub. 
関連する問題