Googleで検索しましたが、有用なものは見つかりませんでした。
Perl のチュートリアルはたくさんありますが、キーごとに異なる値を持つハッシュについて言及しているチュートリアルは見つかりませんでした。そのようなことはPerlで可能ですか?
たとえば、次のような 2 つのキー ( a
, b
)を持つハッシュが存在する可能性があります。
$myhash{"a"}=1;
$myhash{"b"}=[ 'hamnet', 'shakespeare', 'robyn', ];
上記は可能ですか?
私はこれを試しました:
#!/usr/bin/perl
use strict;
my %x;
$x{"a"}="b";
$x{"b"}=['c','d'];
foreach (keys %x)
{
print $_."\n";
print "$x{$_}";
}
しかし、それは出力しています:
a
bb
ARRAY(0x1ece50)
このハッシュの要素にアクセスする方法について混乱しています。
私は Perl を少し知っていますが、ハッシュに関してはまったくの初心者であることをお伝えしたいと思います。
OK、1 つ見つけました — ハッシュ内の配列にアクセスするには、次のことを行う必要があります。
@{$x{"b"}}
しかし、先ほど説明したように、ハッシュの値は配列またはスカラー値のいずれかになる可能性があるため、上記のハッシュにアクセスするには、最初に値の型を識別してからアクセスする必要があります。これどうやってするの?つまり、キーの値がスカラー、配列、またはハッシュのいずれであるかをどのように識別できますか?