我不明白你的问题。当然,如果对数组引用进行排序,则可以就地对数组引用进行排序。在程序中,创建数组的副本,并对该数组进行排序。原始数组保持未排序状态。
以下程序消除了阵列拷贝,并为我工作:
#!perl
use strict;
use warnings;
use Archive::Zip;
use feature qw(say);
my $zip = Archive::Zip->new();
$zip->read("Q:/cygwin_tools.zip");
my $members_ref = $zip->{'members'};
# Not sorted 1st member:
say $members_ref->[0]->fileName();
@$members_ref = sort { $b->fileName() cmp $a->fileName() } @$members_ref;
# Sorted 1st member:
say $members_ref->[0]->fileName();
# Should be sorted 1st member if sorted in-place:
say @{$zip->{'members'}}[0]->fileName();
__END__
cygwin/
cygwin/usr/share/bison.simple
cygwin/usr/share/bison.simple
也见
perlreftut
References Quick Reference