in reply to Sort problems
use strict; use warnings; sub sortit { my ($alpha_a, $num1_a, $num2_a) = $a =~ /([a-z]+)(\d+)_(\d+)/; my ($alpha_b, $num1_b, $num2_b) = $b =~ /([a-z]+)(\d+)_(\d+)/; my $retn = $alpha_a cmp $alpha_b; return $retn if $retn != 0; $retn = $num1_a <=> $num1_b; return $retn if $retn != 0; return $num2_a <=> $num2_b; } my @list = qw (a1_2 a1_1 a10_10 a2_10 a2_1 a2_2 a10_1 a10_2 a1_10); my @new_list = sort sortit @list; print "@new_list\n";
|
|---|
| Replies are listed 'Best First'. | |
|---|---|
|
Re^2: Sort problems
by moritz (Cardinal) on Dec 02, 2008 at 10:22 UTC |