perl多维哈希(实用篇)

 

 

博客园不能代码高亮,如果对perl、R、python感兴趣可以去我的主页www.from0701.com

 

 

今天给大家介绍的是perl多维哈希,这是个非常实用的perl对象。废话不多说下面直接来个实例。
假设我有一批数据,格式如下

种类    大小   名称
a         1       name1
a         1       name2
a         1       name3
a         2      name4
a         2      name5
b         1       name6
b         1      name7
b         1      name8
c          1      name9
c          2      name10
c          2      name11

假设上述数据储存在名为“test.txt”的文档中且字段以tab分割,下面要做的就是用二维数组保存这批数据,其中键值1为名称,键值2为大小,value为种类。

#!/usr/bin/perl
use autodie;
use warnings;

open TEST,"test.txt" #只读方式打开文件
my $multi_hash={}#创建多维哈希,不要问我为什么这么做,因为我也不知道,有时候能用更重要
while(<TEST>)#遍历文件
    chomp($_)#去除换行符
    @tem=split /\t/,$_#用tab拆分行
    $multi_hash->{$tem[2]}->{$tem[1]}=$tem[0]#给哈希赋值
    #一级键$tem[2]为名称,二级键$tem[1]为大小,值$tem[0]为种类
}
##########以下为遍历多维哈希#################################
foreach $name (keys %{$multi_hash})#取出一级键,foreach可用for代替
    foreach $size (keys %{$multi_hash->{$name}})#取出二级键
        print $multi_hash->{$name}->{$size}."\n";  #打印values
    }
}

你可能感兴趣的:(perl)