my @messages; # loop through directory { local ($/, *INPUT); open(INPUT, $dirname . $file) or die; my %record = split(/<(SENDER|TO|FROM|MESSAGE)>/, ); push @messages, \%record; }