加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 大数据 > 正文

如何将数组转换为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;

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读