use strict; use warnings; use List::Util q{max}; my @list = qw{ erez[11] arianne[2763] dana[22] bob[7] dana[0] erez[10] arianne[75] bob[37] erez[1] erez[0] bob[16] dana[10] }; my $longest = max map { length } map { m{(\w+)} } @list; my @sorted = map { substr $_, $longest + 4 } sort map { pack qq{A${longest}LA*}, m{(\w+)\[(\d+)}, $_ } @list; print qq{$_\n} for @sorted;