%a = (1 => "ONE" ,
2 => "TWO" ,
3 => " Three",);
$test_value = 1 ;
foreach $key (sort(keys %a)) {
if ($key == $test_value) {
print $a{$key};
}
}
我只是想實現非常短的方式相同的操作。這有什麼捷徑嗎?
%a = (1 => "ONE" ,
2 => "TWO" ,
3 => " Three",);
$test_value = 1 ;
foreach $key (sort(keys %a)) {
if ($key == $test_value) {
print $a{$key};
}
}
我只是想實現非常短的方式相同的操作。這有什麼捷徑嗎?
假設$ test_value將是某種形式的變量,你可能要像
if(defined($a{$test_value})){
print $a{$test_value};
}
甚至
print $a{$test_value} if(defined($a{$test_value}))
取決於如何readab你想要它:-)
是否可讀? :)
這oneliner會給你同樣的事情:
defined $a{$testvalue} and print $a{$testvalue};
print $a{$test_value} if exists $a{$test_value};
試試這個:
my @tt = map {$_, if $_ == $test_value} keys %a;
print "\n @tt";
由於這是散列的數組你首先得去那個陣列然後通過其鍵值訪問該元素。
print "${@{$h{LMN}{xyz}{c}}[2]}{Number}";
哇,這就像我回到1996年的時間! – jrockway 2009-07-02 10:13:28