foreach $key (keys %Accts){ # seek($teamAccts{$key}, 0, 1); # reset end-of-file error my $safekey=$key; $safekey =~ s/ /_/g; # no embedded spaces in tokens while (<$Accts{$key}> ) { # one of the sub files my $L=$_; # $_ by itself gave same result my $msgL="$DTG $safekey $L"; # $L should have \n already $rsltStr .= $msgL; } }