更新 2021-03-16 : 親愛なる将来の訪問者、私は受け入れられた答えを持っています. (FMc とダルトンの答えは同じですが、私の知る限り、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";