http://qs321.pair.com?node_id=261817


in reply to Help to improving my code please?

A first thought that comes into my mind would be to construct a hash of arrays (HoA) to get rid of those 26 arrays that you have (and what if the filename doesn't start with a letter at all?)

here is some code:

$hash{$_} = [] for ('A'..'Z'); # prepare some empty arrayrefs $file_name =~ /^(.)/; # Mmm... It would be better to use a substr here + :/ push @{$hash{uc($1)}}, $infoline; # push an $infoline, first by upper +casing the key

I am no Perl guru, so others will probably point to a better direction.