in reply to Looping through an Array of Hashes

You got a problem with <@months>, cause @months isn't a FILEHANDLE and it doesn't need <> around it. And of course you should switch from a while to a for loop. Still i doubt the code will do what i suppose you want it to do, cause you put in @months 3 references to the same hash %m.

$|=$_='1g2i1u1l2i4e2n0k',map{print"\7",chop;select$,,$,,$,,$_/7}m{..}g