use IO::File (); local $/; foreach (sort keys %altnames) { my $fh = IO::File->new; my ($hr_title) = m/(.*)\.txt/; print("

$hr_title

\n"); my $source = join '/', $dir, $_; $fh->open($source); while (<$fh>) { print($_); } $fh->close; }