将行拆分为哈希键

时间:2014-09-09 13:38:46

标签: perl hash split line

我有这样一条线 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);
不,这段代码没有用......有什么建议吗?

1 个答案:

答案 0 :(得分:3)

my @tmp = split(/\s/, $line);

my %hash;
@hash{@tmp} = ("") x @tmp;

my %hash = map { $_ => "" } split(/\s/, $line);