我有这样一条线
3:0 6:0 12:0 13:0 17:0 17:11 25:0 26:0 31:0 32:70 33:70 51:70 52:70 84:0 84:2 108:0 127:0 131:0 132:0 133:0 159:0 206:28 250:0
我想拆分该行并使用空键创建一个哈希,最后的哈希值应该是这样的
%hash = (
"3:0" => '',
"6:0" => '',
...
)
我已经通过这种方式完成了
my @tmp = split(/\s/, $line);
for (@tmp){
$hash{$_} = '';
}
我想知道是否可以用1分割命令实现这一点
my %Hash = split (/\s/, $line);
不,这段代码没有用......有什么建议吗?
答案 0 :(得分:3)
my @tmp = split(/\s/, $line);
my %hash;
@hash{@tmp} = ("") x @tmp;
或
my %hash = map { $_ => "" } split(/\s/, $line);