gpt4 book ai didi

arrays - perl 使用引用对二维数组进行排序

转载 作者:行者123 更新时间:2023-12-01 02:09:34 24 4
gpt4 key购买 nike

我对 perl 有点陌生,所以请耐心等待。到目前为止,我已经用尽了所有可能的解决方案。

假设我有一些帽子,有些尺寸在其他地方填充。我想根据某个列对它们进行排序。我尝试使用 perl 的“排序”来做到这一点,但我没有让它们真正排序。我相信问题在于我对引用文献感到困惑。下面的代码是我目前正在使用的代码。

my @hat1 = [3, 4, 5, 6, 7, 8];
my @hat2 = [4, 6, 5, 1, 1, 2];
my @hat3 = [9, 8, 9, 3, 4, 4];
#eventually work with unknown number of hats

my @binToSort = (\@hat1,\@hat2,\@hat3);

my @binSorted = sort { $a->[4] <=> $b->[4] } @binToSort;

for my $ref (@binSorted){
for my $inner (@$ref){
print "@$inner\n";
}
}

截至目前,它打印出未排序的数组值:
3 4 5 6 7 8
4 6 5 1 1 2
9 8 9 3 4 4

但我希望能够到达:
4 6 5 1 1 2
9 8 9 3 4 4
3 4 5 6 7 8

我觉得这是一个简单的问题,但我想不出正确的方法来做到这一点。任何帮助深表感谢!

最佳答案

你需要:

my $hat1 = [ 3, 4, 5, 6, 7, 8 ];
my $hat2 = [ 4, 6, 5, 1, 1, 2 ];
my $hat3 = [ 9, 8, 9, 3, 4, 4 ];

#eventually work with unknown number of hats

my @binToSort = ( $hat1, $hat2, $hat3 );

my @binSorted = sort { $a->[4] <=> $b->[4] } @binToSort;

for my $ref (@binSorted) {
for my $inner ( @{$ref} ) {
print "$inner";
}
print "\n";
}

或者
my @hat1 = ( 3, 4, 5, 6, 7, 8 );
my @hat2 = ( 4, 6, 5, 1, 1, 2 );
my @hat3 = ( 9, 8, 9, 3, 4, 4 );

#eventually work with unknown number of hats

my @binToSort = ( \@hat1, \@hat2, \@hat3 );

my @binSorted = sort { $a->[4] <=> $b->[4] } @binToSort;

for my $ref (@binSorted) {
for my $inner ( @{$ref} ) {
print "$inner";
}
print "\n";
}

关于arrays - perl 使用引用对二维数组进行排序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30305942/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com