在 Perl 中,我可以这样做:
my @unit_indices = sort {
$units{$b}[0] <=> $units{$a}[0]
or
$a cmp $b
} keys %units;
它按一个字段(数组元素)降序和另一个(哈希键)升序排序,但会导致perlcritic
抱怨:
在 X 行 Y 列的排序块中禁止在 $a 之前使用 $b。参见 PBP 第 152 页。(严重性:1)
Perl Best Practices建议使用reverse
。
但是如果你写下这个操作会更容易理解:
@sorted_results = reverse sort @unsorted_results;
但是,我还没有找到一种方法让子排序以相反的方向运行。
显然,我可以告诉perlcritic
忽略这一点,但我想知道如何完成我需要的事情并让自己perlcritic
开心。