in reply to Multiple Sort on a file
my @data while (my $line = <FILE>) { my @elements = split /,/, $line; push @data, \@elements; # need to store as ref } @data = sort { $$a[2] cmp $$b[2] or $$a[0] <=> $$b[0] } @data; # cmp and <=> are string and numerical comparison operators, # respectively; if the left hand arg is less than the right, # they return -1, if equal, 0, and otherwise 1, so if the # 3rd column of the array is the same, we get a 0, which # triggers the 'or' and the second comparison open OUTFILE, ">$outfile" or die $!; foreach my $item (@data) { print OUTFILE join ',', @$item; print OUTFILE "\n"; }
-----------------------------------------------------
Dr. Michael K. Neylon - mneylon-pm@masemware.com
||
"You've left the lens cap of your mind on again, Pinky" - The Brain
|
|---|
| Replies are listed 'Best First'. | |
|---|---|
|
Re: Re: Multiple Sort on a file
by Anonymous Monk on Aug 16, 2001 at 11:01 UTC |