2021-03-16 更新:亲爱的未来访客,我已经接受了答案,而且我仍在获得支持,但@FMc 的解决方案显然比我的要好。(FMc 和 dalton 有相同的答案,但据我所知,FMc 是第一个到达那里的。)
无论如何,如果您遇到这种情况,请使用 Perl 的内置映射,而不是我对自定义子例程的原始答案。
原始答案:假设你有一个字符串数组,并且你想要的只是对每个字符串进行排序,就好像它是一个数字子数组(但留下一个字符串?):
#!/usr/bin/env perl
use strict;
use warnings;
my @array = ('6 8', '12 9 6', '33 32 5', '8 6');
foreach my $string (@array) {
$string = split_sort($string);
}
sub split_sort {
my $string = shift @_;
my @internal_nums = split ' ', $string;
@internal_nums = sort {$a <=> $b} @internal_nums;
return join ' ', @internal_nums;
}
print "@array\n";