代码:
%a = ( 1 => "ONE" ,
2 => "TWO" ,
3 => " Three", );
$test_value = 1 ;
foreach $key (sort(keys %a)) {
if ($key == $test_value ) {
print $a{$key};
}
}
我只想以非常短的方式实现相同的操作。这有什么捷径吗?
答案 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};