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