/tmp/perlmonks>cat run.pl #!/usr/bin/perl use strict; use warnings; use lib '/tmp/perlmonks'; # Tons of work omitted ... ;-) @ARGV and chdir '/tmp/unrelated'; require Mod; Mod::where(); /tmp/perlmonks>cat Mod.pm package Mod; use v5.12; # for say use strict; use warnings; use FindBin; sub where { say "Script is in $FindBin::Bin"; say "Script basename is $FindBin::Script"; say "Real script directory is $FindBin::RealBin"; say "Real script basename is $FindBin::RealScript"; say "Module was loaded from $INC{'Mod.pm'}"; } 1; /tmp/perlmonks>perl run.pl Script is in /tmp/perlmonks Script basename is run.pl Real script directory is /tmp/perlmonks Real script basename is run.pl Module was loaded from /tmp/perlmonks/Mod.pm /tmp/perlmonks>