排序数组Perl(第二部分)

时间:2015-03-16 21:44:22

标签: arrays perl sorting

是的,所以我得到了一些帮助,但需要更多,我对如何按字母顺序排序数组有很好的理解。但现在我需要用数字排序。它可能是“my @test = (sort {items{$a}} <=> {items{$b}} @menu)"

附近的语法错误

如果它是一个带有两个键的哈希,我会有一个解决方案,但由于这个数组包含三个类别,这对我来说很难。显然正在寻找一些帮助以及尽可能的解释,因为我渴望学习。 谢谢!

my @test = (sort {price{$a} <=> {price{$b}} @menu)

2 个答案:

答案 0 :(得分:2)

问题是item{$a}。看起来你正在尝试从散列item获取一些值,当然不是哈希值。

my @test = sort { $a->{price} <=> $b->{price} } @menu;

您也可以根据多个字段进行排序

my @test = sort {
           $a->{price} <=> $b->{price}
        or $a->{color} cmp $b->{color}
        or $b->{items} cmp $a->{items} # note reverse order
    } @menu;

答案 1 :(得分:0)

这是如何通过奖品订购:

my @test = sort { $a->{prize} <=> $b->{prize} } @menu;

按降序排列,只需更改$ a和$ b:

my @test = sort { $b->{prize} <=> $a->{prize} } @menu;