2010-12-21 48 views
2

是否有另一種方法來測試第四個「何時」的哈希值是否正確?

#!/usr/local/bin/perl 
use warnings; 
use 5.012; 

my %hash; 
$hash{one} = 0; 
$hash{two} = 2; 
$hash{three} = 0; 

print ": "; 
my $aw = <>; 
chomp $aw; 

given ($aw) { 
    when ('cat') { say '$aw eq cat' } 
    when ('mouse') { say '$aw eq mouse' } 
    when ('sheep') { say '$aw eq sheep' } 
    when (!(!$hash{$_})) { say '$hash{$_} is true' } ### 
    default { say 'something else' } 
} 
+0

你的意思是'真實性'究竟是什麼意思?關鍵字已被賦值(即使值爲undef),賦值被定義(即不是undef),或賦值不同於'',0或undef(我認爲後者意味着正確性) ? – canavanin 2010-12-21 15:34:44

+0

第三位;我想第二個將被「定義」,第一個將是「存在」。 – 2010-12-21 15:58:41

回答

2

嗯,我只想用較短:

when (!!$hash{ $_ }) { ... } 

但是,是的,僅此而已。

0
when (%hash) { ... }; 

這是智能比賽畢竟!