Search code examples
perlmodule

How do I use a Perl module from a relative location?


I have a dir called foo, and in that I have lib and bin. The scripts in bin need stuff in lib. I do something like this:

#!perl
use strict;
use warnings;
use lib '../lib';
use Foo; # <-- comes from lib

But that means I have to be in the bin dir to run the script. Surely there is a better way. What's the Right Way to do this?


Solution

  • The standard FindBin module does what you want.

    use FindBin;
    use lib "$FindBin::Bin/../lib";
    

    perldoc FindBin for more.