4

私は現在Perlの学習に忙しく、調べて「解決」するためのコードをいくつか与えられています。

foreach $field (keys %$exam)

上記のコードは、Imが理解しにくい領域です。$はスカラーで、%はハッシュだと思ったので、%$が何であるかわかりません。

助けていただければ幸いです。

みんなありがとう。

4

3 に答える 3

8

%$exam通常のハッシュではなく、逆参照されたハッシュを使用していることを示します。つまり、このステートメントがハッシュの参照になる前のどこか($examたとえば、匿名のハッシュ参照)を使用しています。ここで、以前に参照されたハッシュを使用するには、この構文を使用して逆参照する必要があります。明確に使用するには、と書くことができます。$exam = \%somehash$exam = { a => 1 }%{$exam}

于 2013-02-16T00:16:19.713 に答える
7
$exam = {a=>1, b=>2}; # anonym hash, $exam is ref for this hash

この参照をハッシュのように使用するには、参照の%前に間接参照演算子を使用する必要があります

foreach $field (keys %$exam)

たとえば、配列refについても同じです。

$a = [1,2,3,4]; # anonym arr, $a is ref for this array

@そのため、間接参照のためにref$aの前に演算子を使用する必要があります

foreach $element (@$a) {print $element;}

于 2013-02-16T00:21:25.433 に答える
2

これは、参照変数を逆参照するための構文です。 $exam

見る

于 2013-02-16T00:04:26.203 に答える