Next: Regular Expressions
Up: Comparisons
Previous: String comparison
Contents
Index
Sorting
As well as their use in conditionals, the various
constructions for comparing variables also find
a use in the sort function, which is used
to sort a list. The default behaviour is to sort
by string comparison; for example
my @names = qw(Jennifer Wanda Sally);
my @sorted_names = sort @names;
print qq{The sorted array is @sorted_names\n};
will print out
The sorted array is Jennifer Sally Wanda
which is probably what is wanted (ie, sorted alphebatically).
However,
my @numbers;
for my $index (1 .. 10) {
$numbers[$index] = int(rand 2000);
}
my @sorted_list = sort @numbers;
print qq{The sorted array is @sorted_list\n};
might print out (for some run)
The sorted array is 1341 1371 1467 1479 1679 1728 196 1968 678 81
Note that this is in a string-wise, not numerical, order. To
put these into numerical order, we have to tell sort
to sort things numerically; this can be done via
my @sorted_list = sort {$a <=> $b} @numbers;
which specifies a routine to use to do the sort. The special
variables $a and $b are constructed by Perl
from the given list.