in reply to Can't locate in @INC

lesenfantsterribles.pm seems to be one of your own modules, but all of the directories you have in @INC are on system level. In which directory is that module to be found?

A frequent reason why software with homegrown modules suddenly stopped working is that as of Perl 5.26, "." [is] no longer in @INC. So, if your programs rely on finding that module in the "current directory", this won't work with newer Perls.

If adding a use lib with the correct absolute path to the directory doesn't help: Does Freehostia run their web stuff (which I guess is what you have) in a chroot environment? In that case you need to add the directory as the web server sees it.

Replies are listed 'Best First'.
Re^2: Can't locate in @INC
by Anonymous Monk on Aug 31, 2023 at 11:46 UTC
    Thanks. The listed version of Perl is 5.24.1 and they insist they haven't changed anything. When I add a use lib it lists it correctly in the error listing (showing the contents of @INC) I have tried both relative and absolute paths and it makes no difference. Excuse my ignorance but how can I discover "as the web server sees it."?
      Thanks. The listed version of Perl is 5.24.1

      So that's an inconsistency. In Perl 5.24.1, '.' is in @INC, but your output does not show it. So someone has done something to remove it (and in fact, removing it manually was recommended in perl5421delta).

      ...and they insist they haven't changed anything.

      For obvious reasons, I can not verify that claim. That's between you and them.

      Excuse my ignorance but how can I discover "as the web server sees it."?

      Since you haven't provided much details about your environment, I can only guess that this is some web hosting, and you can write CGI programs in Perl. If that's the case, write a CGI program which examines the directories in question and prints the file names, ownership and permissions, and also the user and group id under which the program is running.