如何在Perl中将左数据拆分为键,而右数据询问值

时间:2018-10-15 03:25:43

标签: perl

我的输入文件:

Lin :202020 123 455
Star :21334 1233 555

我正在尝试将Lin&Star作为键,其余数字作为值。 但是,我得到这样的输出:

'202020 123 455 Star' => undef,

我的预期输出:

$VAR1 = {
'Lin' =>'202020 123 455',
'Star'=>'21334 1233 555'
}

我的代码:

use strict;
use warnings;

use Data::Dumper;
.
.
.
.
while($lines)
{
my %hash = split /[:]/,$lines;
print Dumper (%hash);
last;
}

2 个答案:

答案 0 :(得分:2)

您的代码存在问题

  1. 我们不知道<Feed.Date>{new Date(date*100)}</Feed.Date> 是什么
  2. $lines没有任何意义
  3. 您将在循环的每次迭代中重新初始化while ($lines)
  4. %hash没有任何意义

解决方案:

last

答案 1 :(得分:0)

use 5.18.2;
use strict ;
use warnings ;
use Data::Dumper;

my @Data = ( "Lin :202020 123 455" , "Star :21334 1233 555" ) ;
my %hash = map { (split(':'))[0] => (split(':'))[1] } @Data ; # you can also use <STDIN> instead of @Data                                             
print Dumper(\%hash);