my @data; while( ) { chomp; my( $num, $name )= split /\s*,\s*/, $_, 1; push @{$data[$num]}, $name; } my $num= 0; for my $byNum ( @data ) { for my $name ( @$byNum ) { print "$num,$name\n"; } $num++; } #### for my $byNum ( @data ) { @$byNum= sort @$byNum; }