6

私はちょっとPerlを学ぼうとしていて、これに出くわしました:

foreach $element (@{$records})
{
    do something;
}

私の初心者の目には、これは次のように表示されます:「@{$records} という名前の配列の各要素に対して、何かを実行します@{$」単純?

「 」が一緒に使われていることにも出くわしまし%$た。%がハッシュを意味し、スカラーを意味することは知っ$ていますが、それらが一緒に何を意味するのかわかりません。

誰でもこれらに光を当てることができますか?

4

2 に答える 2

10

Perl では、データ構造への参照 (ポインター) を持つことができます。

# an array
my @array;

# a reference to an array
my $ref = \@array;

配列を使用できるようにするための参照がある場合は、それを逆参照する必要があります

@{ $ref }

次のように要素にアクセスする必要がある場合

$array[0]

あなたは参照で同じことをすることができます

${$ref}[0]

中括弧{}はオプションであり、使用することもできます

$$ref[0]
@$ref

しかし、個人的には読みにくいと思います。

同じことが他のすべてのタイプにも当てはまります (%$ハッシュ参照に関して)。

詳細についてはman perlrefを、チュートリアルについてはman perlreftutを参照してください。

編集

アロー演算子->は、配列またはハッシュの逆参照にも使用できます

$array_ref->[0]

また

$hash_ref->{key}

詳細についてはman perlopを参照してください

于 2012-09-07T13:24:22.297 に答える
3

配列またはハッシュへの参照がある場合は、スカラーを使用して参照を保持します。

my $href = \%hash;
my $aref = \@array;

これらの参照を逆参照する場合は、参照タイプに適したシンボルを使用します。

for my $element (@$aref) {
}

for my $key (keys %$href) {
}
于 2012-09-07T13:24:06.243 に答える