https://perlmaven.com/how-to-change-inc-to-find-perl-modules-in-non-standard-locations How to change @INC to find Perl modules in non-standard locations *** You can define the PERL5LIB environment variable (though PERLLIB works the same way, I'd recommend using PERL5LIB over PERLLIB as that makes it clear it is related to Perl 5) the same way you can define the PATH environment variable. Every directory listed in this variable will be added to the beginning of @INC. On Linux/Unix when using Bash, you would write export PERL5LIB=/home/foobar/code You can add this to the ~/.bashrc to make it always available when you log-in. *** Adding a use lib statement to the script will add the directory to @INC for that specific script. Regardless who and in what environment runs it. You just have to make sure to have the use lib statement before trying to load the module: use lib '/home/foobar/code'; use My::Module; One note here. I saw several companies where use lib statements were added to the modules so they will be able to load their dependencies. I don't think this is good. I think the right place to change @INC is the main script or even better, outside the script such as in the two other solutions. *** -I on the command line (That's a capital i) The last solution is the most temporary solution. Add a -I /home/foobar/code flag to perl when running the script. perl -I /home/foobar/code script.pl This will add /home/foobar/code to the beginning of @INC for this specific execution of the script.