如何将数组转换为Perl中的散列?
发布时间:2020-12-15 21:11:50 所属栏目:大数据 来源:网络整理
导读:我有一个数组,并尝试将数组内容转换为具有键和值的哈希值.索引0是一个键,索引1是一个值,索引2是一个键,索引3是一个值等. 但它并没有产生预期的结果.代码如下: open (FILE,"message.xml") || die "Cannot openn";$var = FILE;while ($var ne ""){ chomp ($v
我有一个数组,并尝试将数组内容转换为具有键和值的哈希值.索引0是一个键,索引1是一个值,索引2是一个键,索引3是一个值等.
但它并没有产生预期的结果.代码如下: open (FILE,"message.xml") || die "Cannot openn"; $var = <FILE>; while ($var ne "") { chomp ($var); @temp = split (/[st]s*/,$var); push(@array,@temp); $var = <FILE>; } $i = 0; $num = @array; while ($i < $num) { if (($array[$i] =~ /^w+/i) || ($array[$i] =~ /d+/)) { # print "Matchedn"; # print "t$array[$i]n"; push (@new,$array[$i]); } $i ++; } print "@newn"; use Tie::IxHash; tie %hash,"Tie::IxHash"; %hash = map {split ' ',$_,2} @new; while ((my $k,my $v) = each %hash) { print "t $k => $vn"; } 产出的产量不正确: name Protocol_discriminator attribute Mandatory type nibble value 7 min 0 max F name Security_header attribute Mandatory type nibble value 778 min 0X00 max 9940486857 name => Security_header attribute => Mandatory type => nibble value => 778 min => 0X00 max => 9940486857 在输出中,您可以看到散列仅由一部分组成,数组的另一部分不会在散列中创建. 谁能帮忙? 解决方法
没有比它更多:
%hash = @array; (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |