1
我有以下代碼:的Perl:測試哈希片不會產生預期的結果
if (defined(@hash{qw{value1 value2 value3}})){
# code block
}
我希望發生的是代碼塊來執行,如果任一$ {散列值1} $ {哈希value2}或$ hash {value3}被定義。但是,什麼情況是,代碼塊執行,當且僅當$哈希{值3}定義:
$hash{value3}='yep, here!';
if (defined(@hash{qw{value1 value2 value3}})){
print "yay!";
}
輸出:
yay!
但是:
$hash{value2}='yep, here!';
if (defined(@hash{qw{value1 value2 value3}})){
print "yay!";
}
輸出:
<nothing>
爲什麼不能正常工作對,我該怎麼辦?
美麗!謝謝。歸檔於「爲什麼我沒有想到這個?!」 – Bintz 2015-03-02 23:59:47
「爲什麼這不起作用?」的答案是_ [[標量上下文中的切片返回切片的最後一項]](http://perldoc.perl.org/perldata.html#Slices)_(例如[list literals](http://perldoc.perl.org) /perldata.html#List-value-constructors))。 – pilcrow 2015-03-03 00:14:32
@pilcrow tnx發表評論。 – 2015-03-03 00:22:22