in reply to probems with sorting file in perl

This should do it, although I'm not sure if reading the input file in one slurp scales well to very large files. You did say the fields are separated by a space and a comma? A comma followed by a space seems more likely; if that's the case the regexes should be changed to
/^(.*?), /
If the first field is not numeric on a line, you will get warnings (if they're turned on), but it will finish, and sort them first in the output.

#!/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