7

refに関するperlの質問。

$ref = [11, 22, 33, 44];
print "$$ref[0]" . "\n";
print "@$ref[0]" . "\n";

perl-dを実行すると。

DB<1> p @$ref
11223344
DB<2> p $ref
ARRAY(0x9dbf480)
DB<3> p \$$ref[0]
SCALAR(0x9dbf470)
DB<4> p \@$ref[0]
SCALAR(0x9dbf470) 

$$ ref [0]は、ARRAY(0x9dbf480)の最初のスカラーを表します。

@ $ ref [0]とはどういう意味ですか?私は理解できない。

4

2 に答える 2

11

$ref = [11, 22, 33, 44];匿名配列への参照です。

$$ref[0]または${$ref}[0]または$ref->[0]は配列を逆参照し、最初の要素を取得しています。

@$ref[0]または@{$ref}[0]、配列を逆参照して、最初の要素のみを含む配列スライスを取得しています。

于 2012-06-17T02:46:51.010 に答える
4

まず、@$ref[0]とは異なり\@$ref[0]ます。前者はデバッグ セッションにあり、後者はスクリプトにあります。

とにかく、@$ref[0]と同じ意味@{$ref}[0]です。@refという名前の配列がある場合は@ref[0]、同等になります。配列の最初の要素を取得するためにスライス表記を使用しています。

@array[$x]との違い$array[$x]は、最初のものでは複数のインデックスを指定して、1 つだけではなく配列から要素のコレクションを取得できることです。ただし、括弧の間にインデックスを 1 つだけ配置すると、同じ結果が得られます。

于 2012-06-17T02:32:40.683 に答える