這裏是我的字符串:
NANA TEKA KAOE FLASK LSKK
如何將字符串拆分爲帶有undef值的散列鍵?
如何讓這個它會是這樣的:
HASH = {NANA => undef, TEKA => undef, KAOE => undef, ...
當然,我隨時可以分成數組第一
然後依次通過這每個值然後分配他們作爲散列
鍵...但如果有一個更簡單的方法來做到這一點?
在此先感謝!
這裏是我的字符串:
NANA TEKA KAOE FLASK LSKK
如何將字符串拆分爲帶有undef值的散列鍵?
如何讓這個它會是這樣的:
HASH = {NANA => undef, TEKA => undef, KAOE => undef, ...
當然,我隨時可以分成數組第一
然後依次通過這每個值然後分配他們作爲散列
鍵...但如果有一個更簡單的方法來做到這一點?
在此先感謝!
@hash{ split /\s+/, $string } =();
謝謝!只是我錯過了:'@' – cr8ivecodesmith
@DavidO:你碰巧知道是否存在一個普遍的解決方案(即沒有顯式的'map'等),而不是'undef'的常量值? – musiKk
musiKk,分配一個涉及['x'重複操作符](http://p3rl.org/op#Multiplicative-Operators)的表達式:'... =('foobar')x 5' – daxim
您可以分割字符串,並使用地圖生成輸出哈希值。
my $string = "NANA TEKA KAOE FLASK LSKK";
my %hash = map { $_ => undef } split(/\s/, $string);
我懷疑這是否是做的最簡潔的方式,但它似乎工作:
use warnings;
use strict;
my $string = "NAN TEKA KAOE FLASK LSKK";
my %hash = map { ($_ => undef) } split /\s+/, $string;
foreach my $key (keys %hash)
{
printf "$key => %s\n", (defined($hash{$key})) ? $hash{$key} : "undef";
}
感謝大家的答案!儘管@DavidO的答案是最簡單的。 :) – cr8ivecodesmith