編輯對不起,我忘了這裏最重要的部分。每個鍵可以有有多個值。向那些已經回答的人道歉。稍後將使用print
和join
在單行上打印$key
的多個值。如何將唯一值添加到用作散列值的匿名數組?
在下面的示例代碼中,假設值$keyvalue
不斷變化,我嘗試使用一行(或類似的東西)來測試並查看當前的$keyvalue
是否已經存在。如果是這樣,那就什麼都不要做。如果沒有,然後推它。這條線將駐留在while語句中,這就是爲什麼它需要包含在幾行內。
只要沒有重複的值,保留順序並不重要。
my $key = "numbers";
my $keyvalue = 1;
my %hash = ($key => '1');
push (@{$hash{$key}}, $keyvalue) unless exists $hash{$key};
我沒有得到任何錯誤與use strict; use warnings;
,但在同一時間,這是行不通的。在上面的例子中,我預計,因爲默認值是1
,$keyvalue
不會被推,因爲它也是1
。也許我已經得到了自己所有的轉身...
是否有調整,讓這個工作或任何替代品可以用來完成相同的事情?
爲什麼與'push'打擾如果你只曾經打算保存單個值?只需存儲該值。如果您已有,則跳過存儲。 – 2010-03-25 10:39:50