Chinaunix首页 | 论坛 | 博客
  • 博客访问: 148115
  • 博文数量: 47
  • 博客积分: 0
  • 博客等级: 民兵
  • 技术积分: 402
  • 用 户 组: 普通用户
  • 注册时间: 2013-03-11 10:08
文章存档

2013年(47)

我的朋友

分类: PERL

2013-03-13 15:38:31

使用
$hash{$key1}{$key2} = $value;

遍历(注意加粗与加下划线的语句)

foreach my $key1 (keys %hash)
{
my $hash2 = $hash{$key1};
foreach my $key2 (sort{$hash2->{$b}<=>$hash2->{a}} keys %$hash2)
{
print $key1.”\t”.$key2.”\t”.$hash2->{$key2}.”\n”;
}
}

对比单维哈希

foreach my $key (sort{$hash{$b}<=>$hash{$a}} keys %hash)
{
print $key.”\t”.$hash{$key}.”\n”;
}


实际中的应用:

比如一个二维Hash:

点击(此处)折叠或打开

  1. $VAR1 = {
  2.           '0' => {
  3.                    'lu_id' => '529',
  4.                    'lu_contract_id' => ' ',
  5.                    'lu_name' => '上海XXXX科技有限公司',
  6.                    'lu_loginid' => '上海XXXX'
  7.                  }
  8.         };
  9.          '1' => {
  10.                    'lu_id' => '784',
  11.                    'lu_contract_id' => ' ',
  12.                    'lu_name' => '北京XXXX广告'
  13.                    'lu_loginid' => '北京XXXX'
  14.                  }
  15.         };

现在想把里面所有的lu_id组成一个列表,程序如下:

点击(此处)折叠或打开

  1. foreach my $key (sort keys %hash) {
  2.     my $value = $hash{$key};
  3.     push @list,$value->{"lu_id"};
  4. }


阅读(4079) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~