ハッシュの値に基づいてキーを出力する必要があります。これがコードです、私が書いた
foreach $value (values %hash)
{
print "$value\t$hash{$value}\n";
}
エラー: 値のみを出力できますが、キーは出力できません。
どんな助けでも大歓迎です。
ありがとう
ハッシュは、値ではなくキーでアクセスできるように設計されています。値ではなく、キーのリストをループする必要があります。
次に、キーを使用して関連する値にアクセスできます。
foreach my $key (keys %hash) {
my $value = $hash{$key};
say "$key = \t$value";
}
print "$_\t$hash{$_}\n" for keys %hash;
試してみてください:
for my $key (keys %hash) {
print "$key\t$hash{$key}\n";
}
一発ギャグ:
map { print "$_\t$hash{$_}\n" } keys %hash;
キーと値を反復処理する場合は、while と each を使用します。
while (my ($key, $value) = each %hash) {
say "$key -> $value";
}
タイトルは、値に基づいてキーを出力するように要求します。
過酷なテーブルのキーと値が1対1である必要がある場合
foreach $key (keys %hash)
{
$r_hash{$hash{$key}}=$key;
}
....
値でアクセスしたい場合は、ハッシュを次のように定義します
$x = { 'x1' => [ 'one','x1']}
foreach ( values %$x )
{
foreach $m1 (@$_) {
print "$m1\n";
}
}
値配列の 2 番目のメンバーによって値からキーを取得できることに注意してください。