这是我的字符串:
NANA TEKA KAOE FLASK LSKK
如何制作它看起来像这样:
HASH = {NANA => undef, TEKA => undef, KAOE => undef, ...
当然,我总是可以将它分成一个数组
然后遍历每个值,然后将它们分配为散列
键...但是如果有更短/更简单的方法吗?
提前致谢!
答案 0 :(得分:7)
您可以拆分字符串并使用地图生成输出哈希值。
my $string = "NANA TEKA KAOE FLASK LSKK";
my %hash = map { $_ => undef } split(/\s/, $string);
答案 1 :(得分:6)
@hash{ split /\s+/, $string } = ();
答案 2 :(得分:2)
我怀疑这是否是最简洁的方法,但似乎有效:
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";
}