$ ls test/dir1/ fileA fileB $ head -99 test/dir1/file* ==> test/dir1/fileA <== fileA - line 1 fileA - line 2 ==> test/dir1/fileB <== fileB - line 1 fileB - line 2 fileB - line 3 #### use strict; use warnings; use 5.010; my $dir = q{test/dir1}; opendir my $dirHandle, $dir or die qq{opendir: $dir: $!\n}; while ( my $file = readdir $dirHandle ) { next unless -f qq{$dir/$file}; say qq{*** $file ***}; print do { open my $fh, q{<}, qq{$dir/$file} or die qq{open: < $dir/$file: $!\n}; <$fh>; }; } #### *** fileA *** fileA - line 1 fileA - line 2 *** fileB *** fileB - line 1 fileB - line 2 fileB - line 3