用[3]数值对Hash of Arrays进行排序的最简单方法

use*_*271 0 sorting perl

用[3]数值对Hash of Arrays进行排序的最简单方法是什么?

例如......我想从最大值到最小值对值为6125,1686,700的散列进行排序.我最初虽然把这些值作为键,但其中一些数字在其他数组中是相同的.

'12' => [
     '+',
     'ATGGTTTTCTTCTCTCCTTCCCTCTCCAGCCTGCTGTATAAGTAA',
     'MGLGLAPSWPSLLTSSYPECVPYLFSHLLPPTTQPYPFSPSLSSLLYK*',
     6125
     ],
'41' => [
     '+',
     'ATGGGAGTTTACTGTGATGACTTGAGGACAGAGGGACTCTAG',
     'MGVYCDDLRTEGL*',
     1686
     ],
'16' => [
     '+',
     'ATGGGAGTTTACTGTGATGACTTGAGGACAGAGGGACTCTAG',
     'MGVYCDDLRTEGL*',
     700
     ]
Run Code Online (Sandbox Code Playgroud)

Bor*_*din 5

只需使用sort块对键进行排序

my @sorted_keys = sort {  $data{$b}[3] <=> $data{$a}[3] } keys %data;
Run Code Online (Sandbox Code Playgroud)