in reply to probems with sorting file in perl
#!/usr/bin/perl -w use strict; my @whole_file = <>; my @new_array = sort by_first_field @whole_file; print @new_array; sub by_first_field { $a =~ /^(.*?) ,/; my $x = $1; $b =~ /^(.*?) ,/; my $y = $1; return $x <=> $y; }
This sorts according to the comparison defined in the subroutine "by_first_field". $x and $y are set to the captured data in the regexes, and a return value is generated by using the numeric sort operator <=> (aka the spaceship operator). See chapter 15 in Learning Perl for more info.
TheEnigma
|
|---|