私はperlを使ってハッシュで検索を実装したいと考えています。私はハッシュの次のデータを持っています値を使ってハッシュを検索し、perlで成功すると対応するキーを返す方法
%hash = {0 => "Hello", 1=> "world"}.
私は値(worldとhelloを意味します)を使ってハッシュを検索し、対応するキーを返したいと思います。
例:私は世界のために検索すると、結果はfor (keys %hash) ...
文でハッシュのキーの1
私はperlを使ってハッシュで検索を実装したいと考えています。私はハッシュの次のデータを持っています値を使ってハッシュを検索し、perlで成功すると対応するキーを返す方法
%hash = {0 => "Hello", 1=> "world"}.
私は値(worldとhelloを意味します)を使ってハッシュを検索し、対応するキーを返したいと思います。
例:私は世界のために検索すると、結果はfor (keys %hash) ...
文でハッシュのキーの1
反復することと、あなたが行くように値をチェックする必要があります。あなたが探しているものを見つける場合は、
my $hash = { 0 => "World", 1 => "Hello" };
for (keys %$hash) {
my $val = $hash->{$_};
return $_ if $val eq 'World'; # or whatever you are looking for
}
を返す別のオプションは、リテラル{ }
の使用はハッシュリファレンスではなくハッシュを作成while (... each ...)
my $hash = { 0 => "World", 1 => "Hello" };
while (($key, $val) = each %$hash) {
return $key if $val eq 'World'; # or whatever you are looking for
}
を使用することです
$h = { a => 'b', c => 'd' };
を使用して使用するリテラルハッシュを作成する()
%h = (a => 'b', c => 'd');
ハッシュリファレンス
$h = { a => 'b', c => 'd' };
print "$k :: $v\n" while (($k, $v) = each %$h);
c :: d
a :: b
use strict;
use warnings;
my %hash = (0 => "Hello", 1=> "world");
my $val = 'world';
my @keys = grep { $hash{$_} eq $val } keys %hash;
print "Keys: ", join(", ", @keys), "\n";
値は、複数のキーについて同一である場合、これはすなわち、すべてのキーを返します。
まず、 '{' ''} 'を' '(' ')' 'に変更します。' '' '' 'は匿名ハッシュを返します。 –