有没有办法通过只取一个子集(最后两个字符)来对哈希键进行排序?
例如:
$VAR1 = {
'OCT12' => 1,
'JAN13' => 4,
'JAN14' => 39,
'SRF14' => 1,
'OCN13' => 64,
'SBF14' => 80,
'DEC13' => 22,
};
Run Code Online (Sandbox Code Playgroud)
我期待得到输出:"OCT12","JAN13","OCN13","DEC13","JAN14","SRF14".
干杯,何塞
sort { substr($a, -2) cmp substr($b, -2) } keys(%$VAR1)
Run Code Online (Sandbox Code Playgroud)
如果你想通过第一部分排序来打破关系,
sort { substr($a, -2) cmp substr($b, -2) || $a cmp $b } keys(%$VAR1)
Run Code Online (Sandbox Code Playgroud)
my @sorted_keys =
map $_->[0],
sort { $a->[1] <=> $b->[1] }
map [$_, /(\d+)$/],
keys %h;
Run Code Online (Sandbox Code Playgroud)