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}->{$tem}=$tem; #给哈希赋值
#一级键$tem为名称,二级键$tem为大小,值$tem为种类
}
##########以下为遍历多维哈希#################################
foreach $name (keys %{$multi_hash}){ #取出一级键,foreach可用for代替
foreach $size (keys %{$multi_hash->{$name}}){ #取出二级键
print $multi_hash->{$name}->{$size}."\n";#打印values
}
}
页:
[1]