sub process_directory { my ($self, $dir) = @_; print "TESTING: dir is [$dir]\n"; open my $dh, $dir or die "Could not open dir [$dir] for reading: $!\n"; my @files = readdir $dh; print "FILES: @files\n"; closedir $dh; } #### TESTING: dir is [/tmp/testdirectory] readdir() attempted on invalid dirhandle $dh at /path/to/MyModel.pm line 14. FILES: closedir() attempted on invalid dirhandle $dh at /path/to/MyModel.pm line 18.