use warnings;
use strict;
my %h;
然後我可以檢查按鍵的這個哈希中存在與exists
:
if (exists $h{k3}) {
print "k3 exists\n";
}
else {
print "k3 doesn't exist\n";
}
由於k3
不存在,因此腳本會打印k3 doesn't exist
。
我還可以在k3
檢查是否存在ka
:
if (exists $h{k3}{ka}) {
print "k3 ka exists\n";
}
else {
print "k3 ka doesn't exist\n";
}
不幸的是,這會在關鍵k3
,讓另一
if (exists $h{k3}) {
print "k3 exists\n";
}
else {
print "k3 doesn't exist\n";
}
現在打印k3 exists
。
這對我的目的有點不幸。我寧願不想perl創建密鑰k3
。
我當然可以,檢查ka
內k3
喜歡的東西
if (exists $h{k3} and exists $h{k3}{ka})
不創建關鍵k3
。但我想知道是否有一個更短(和更清潔)的方式來檢查k3
內的ka
。
編輯問題是標記爲重複。不幸的是,提到的問題中提到的唯一答案no autovivification
在那裏只有一個贊成,並且未被標記爲接受答案。爲了我的目的,no autovification
是我需要知道的功能(而且我不知不覺之後)。所以,我在這裏留下我的問題,因爲我認爲在另一個問題上接受的答案不是最佳的答案。
不幸的是,至今沒有人回答no autovification
我想接受。因此我可以回答我自己的問題。
「自動激活」通常不會,你希望它是什麼:讓中間引用春天成立。爲了用'exists'測試嵌套結構,這是不幸的。 ''和各個級別在一起是通常的方法,但['不autovivification'](https://metacpan.org/module/autovivification)可能會有所幫助(我從來沒有使用過這個模塊)。 – amon
['no autovivification'](http://search.cpan.org/perldoc?vivification) – mob
@amon:您應該將其提升爲答案 – Borodin