【问题标题】:sorting of hashes in perl [closed]perl中的哈希排序[关闭]
【发布时间】:2013-05-25 08:16:21
【问题描述】:

我有一组对哈希的引用:

@array=($ref1,$ref2,$ref3);

每个 ref 指向一个具有相同键但不同值的哈希。 我必须根据 KEY 的值(散列中的键之一)对散列进行排序。 稍后我必须打印出所有哈希但排序的所有键的值。

例子:

%h1=(KEY=>1,name=>John,sport=>football);
%h2=(KEY=>52,name=>Kate,sport=>football);
%h3=(KEY=>7,name=>April,sport=>basketball);

因此我想按顺序得到它:

%h1,%h3,%h2

【问题讨论】:

  • 好吧,您阅读过sort 的文档吗?你试过什么?

标签: perl sorting hash reference


【解决方案1】:

例子:

use strict;
use warnings; 

my %h1=(KEY=>1,name=>'John',sport=>'football');
my %h2=(KEY=>52,name=>'Kate',sport=>'football');
my %h3=(KEY=>7,name=>'April',sport=>'basketball');
my @array=(\%h1,\%h2,\%h3);

for my $h (sort {$a->{KEY} <=> $b->{KEY} } @array) {
    print join(",", map { "$_, $h->{$_}"} keys %$h ), "\n";
}

输出

KEY, 1,name, John,sport, football
KEY, 7,name, April,sport, basketball
KEY, 52,name, Kate,sport, football

【讨论】:

    猜你喜欢
    • 2010-10-20
    • 1970-01-01
    • 2013-09-21
    • 2018-12-17
    • 1970-01-01
    • 2012-07-28
    • 1970-01-01
    • 1970-01-01
    • 2012-01-08
    相关资源
    最近更新 更多