Вы можете использовать этот модуль, вам просто нужно предоставить сортировку:
tie @a, "Tie::Array::Sorted", sub { $_[0]->[2] <=> $_[1]->[2] };
(или что-то в этом роде ... Я должен проверить это. В основном, вам нужно отсортировать на основе элемента массива ref, который вы передаете)
Edit: Да, это работает для ваших данных.Только что проверил:
use Tie::Array::Sorted;
tie @a, "Tie::Array::Sorted", sub { $_[0]->[2] <=> $_[1]->[2] };
push @a, [ "1111", "http:// ...", 3];
push @a, [ "5555", "http:// ...", 0];
foreach $ref (@a)
{
print $ref . "\n";
print "@$ref \n";
}
Выходы:
ARRAY(0x9130888)
5555 http:// ... 0
ARRAY(0x90dd818)
1111 http:// ... 3