open my $fd, '<', 'file' or die "open: $!"; my @all; while (<$fd>) { chomp; push @all, split /,/; } close $fd; @all = sort { $a <=> $b } @all; my @result; for (my $i = 0; $i < @all; $i+=2) { push @result, "$all[$i]," . ( defined $all[$i+1] ? $all[$i+1] : '' ); } print "$_\n" for @result;