use Sort::Key::Natural qw( natsort ); my @sorted = natsort @data;
or (without modules)
my @sorted = map $_->[0], sort { $a->[1] cmp $b->[1] } map [ $_, pack('C*', split /\./) ], @data;
or (without modules, faster, but input requires an array, not a list)
my @sorted = map $data[unpack('N', $_)], sort map pack('NC*', $_, split /\./, $data[$_]), 0..$#data;
In pack
templates, you can change C
to n
or n
. C
allows numbers up to 255. n
allows numbers up to 65535. n
allows numbers up to 4 billion.
source share