Can't locate DateTime/TimeZone/Local/Unix.pm: /opt/local/lib/perl5/site_perl/5.32.0/DateTime/TimeZone/Local/Unix.pm: T oo many open files at /opt/local/lib/perl5/site_perl/5.32.0/Module/Runtime.pm li ne 314 (#1) (F) You said to do (or require, or use) a file that couldn't be found. Perl looks for the file in all the locations mentioned in @INC, unless the file name included the full path to the file. Perhaps you need to set the PERL5LIB or PERL5OPT environment variable to say where the extra library is, or maybe the script needs to add the library name to @INC. Or maybe you just misspelled the name of the file. See "require" in perlfunc and lib. #### sub require_module($) { # Localise %^H to work around [perl #68590], where the bug exists # and this is a satisfactory workaround. The bug consists of # %^H state leaking into each required module, polluting the # module's lexical state. local %^H if _WORK_AROUND_HINT_LEAKAGE; if(_WORK_AROUND_BROKEN_MODULE_STATE) { my $notional_filename = &module_notional_filename; my $guard = bless([ $notional_filename ], "Module::Runtime::__GUARD__"); my $result = CORE::require($notional_filename); pop @$guard; return $result; } else { return scalar(CORE::require(&module_notional_filename)); } } #### [...] The notional filename for the named module is generated and returned. This filename is always in Unix style, with C directory separators and a C<.pm> suffix. This kind of filename can be used as an argument to C, and is the key that appears in C<%INC> to identify a module, regardless of actual local filename syntax. =cut sub module_notional_filename($) { &check_module_name; my($name) = @_; $name =~ s!::!/!g; return $name.".pm"; } [...]