只有在其密钥存在时,如何才能检索Perl哈希值?

时间:2009-07-01 15:25:20

标签: perl hash

代码:

%a =  ( 1 => "ONE" , 
        2 => "TWO" ,
        3 => " Three", ); 
$test_value = 1 ;

foreach $key (sort(keys %a)) {
    if  ($key == $test_value ) { 
        print $a{$key}; 
    }

}

我只想以非常短的方式实现相同的操作。这有什么捷径吗?

6 个答案:

答案 0 :(得分:8)

我认为这就是你要找的东西:

print $a{$test_value};

答案 1 :(得分:6)

print $a{$test_value} if exists $a{$test_value};

答案 2 :(得分:0)

试试这个:

my @tt = map {$_, if $_ == $test_value} keys %a;
print "\n @tt";

答案 3 :(得分:0)

由于这是一个哈希数组,您首先必须转到该数组,然后通过其键值访问该元素。

print "${@{$h{LMN}{xyz}{c}}[2]}{Number}";

答案 4 :(得分:-1)

假设 $ test_value 是某种变量,您可能需要类似

的内容
if( defined( $a{$test_value} ) ){
    print $a{$test_value};
}

甚至

print $a{$test_value} if( defined( $a{$test_value} ) )

取决于你想要的可读性: - )

答案 5 :(得分:-2)

可读? :)

这个oneliner会给你同样的东西:

defined $a{$testvalue} and print $a{$testvalue};