这里是我的字符串:
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