簡體   English   中英

根據Perl中的哈希值打印密鑰

[英]Printing keys based on Hash values in Perl

我需要在散列中打印基於vales的鍵。 我寫道,這是代碼

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";
}

如果要按值訪問它,請將哈希定義為

$x = {  'x1' => [ 'one','x1']}   


foreach ( values %$x ) 
{                                                                                     
     foreach $m1 (@$_) { 
        print "$m1\n";
     }
}     

請注意,您可以通過值數組的第二個成員從值獲取鍵。

標題請求根據值打印密鑰。

如果你的苛刻表中的鍵和值應該是一對一的

foreach $key (keys %hash)
{
  $r_hash{$hash{$key}}=$key;
}
....

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM