use strict; use warnings; my %hash; while () { if ( /(\w) (.+)/ ) { $hash{$1} .= $2; } } for ( sort keys %hash ) { print "$_ $hash{$_}\n"; } __DATA__ A A_ B B_ C C_ D D_ E E_ A A* B B* C C* D D* E E* A A- B B- C C- D D- E E- A AB B BB C CC D DD