($firstLetter)= ($file_name=~ /^(.)/); push(@{$hash{uc($firstletter)}}, $infoline); #### $hash{'A'} -> [ infolineA1, infolineA2 ... ] $hash{'B'} -> [ infolineB1, infolineB2 ... ] #### foreach $letter (sort keys %hash) { print $letter; foreach $infoline (@{$hash{$letter}}) { print $infoline; } }