繁体   English   中英

Perl:哈希值后的数组排序

[英]Perl: Sort Array after a Hash-value

在哈希值之后,是否有一种“ Perl-ish”方式对哈希数组进行排序?

my @l = ({k1 => "1", k2 => "one"}, {k1 => "2", k2 => "two"}, 
     {k1 => "3", k2 => "three"});

foreach (@l)
{
  print "\n" . $_->{k1} . ", " . $_->{k2};
}

我得到的顺序就是我插入的顺序(还有其他什么...)。 但我想将其按哈希值排序。 我可以想象算法的方式。 但是我要问的是一个可能已经存在的功能。

谢谢!

要按k1键后面的值排序,可以执行以下操作。

my @sorted = sort { $a->{k1} <=> $b->{k1} } @l;

变量$a$b保留为sort特殊变量。 如果列表项是引用,则可以按原样使用它们。

输出数据::打印机

[
    [0] {
        k1   1,
        k2   "one"
    },
    [1] {
        k1   2,
        k2   "two"
    },
    [2] {
        k1   3,
        k2   "three"
    }
]

@list = sort { $a->{'k1'} <=> $b->{'k1'} } @l;

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM