perl:在hashref中排序arrayref

时间:2017-06-09 01:46:03

标签: arrays perl sorting

我有以下结构:

my $hsh = {
  arr => [
    1,
    3,
    6,
    4,
    2
  ]
}

我想排序$hsh->{arr},但我无法弄清楚如何。 sort $h->{arr}不起作用。

3 个答案:

答案 0 :(得分:3)

sort @{ $hsh->{arr} }

请参阅http://perlmonks.org/?node=References+Quick+Reference

答案 1 :(得分:1)

sort @{ $hsh->{arr} }

关于参考文献的参考文献:

如果要在原地排序 [1] ,请使用:

@{ $hsh->{arr} } = sort @{ $hsh->{arr} };

如果要创建新阵列:

my @a = sort @{ $hsh->{arr} };

如果要创建新的匿名数组:

my $a = [ sort @{ $hsh->{arr} } ];
  1. 这不仅仅是有效排序,而是实际排序。因为sort已经过优化,可以在您拥有ARRAY = sort ARRAY形式(或使用比较功能块)时就地排序。

答案 2 :(得分:0)

$hsh->{arr} = [sort @{$hsh->{arr}}];