note
jimbojones
Hi</p>
You have to roll your own sort routine. The example below splits each number on the "." and compares them section-by-section. Something like</p>
<c>
sub sect
{
my @a = split /\./, $a;
my @b = split /\./, $b;
my $len = @b;
if ( @a > @b )
{
$len = @a;
}
foreach my $i ( 0 .. $len-1 )
{
if ( $a[$i] > $b[$i] )
{
return 1;
}
elsif ( $a[$i] < $b[$i])
{
return -1;
}
}
return 0;
}
my @s = ( "1.0", "3", "2.0.1", "4.1.1.1", "1.0.1", "1.1", "1.0.2", "2.0" );
my @t = sort sect @s;
print "@t\n";
__DATA__
1.0 1.0.1 1.0.2 1.1 2.0 2.0.1 3 4.1.1.1
</c>
there are probably more efficient ways to do this.</p>
- j </p>
482696
482696