in reply to sort an array based on pattern

Use a Schwartzian-transformation, e.g.
use strict; my @array = qw(abc1 abc32 abc64 abc8 abc16); my @sorted_array = map { $_->{string} } sort { $b->{number} <=> $a->{number} } map { /(\d+$)/; { string => $_, number => $1 } } @array;