FindBin3pm
Locate directory of original perl script
Usage
use FindBin;use lib "$FindBin::Bin/../lib";
or
use FindBin qw($Bin);use lib "$Bin/../lib";
Overview
Locates the full path to the script bin directory to allow the use of paths relative to the bin directory.
This allows a user to setup a directory tree for some software with directories <root>/bin and <root>/lib and then the above example will allow the use of modules in the lib directory without knowing where the software tree is installed.
If perl is invoked using the -e option or the perl script is read from STDIN then FindBin sets both $Bin and $RealBin to the current directory.
Exportable variables
$Bin - path to bin directory from where script was invoked$Script - basename of script from which perl was invoked$RealBin - $Bin with all links resolved$RealScript - $Script with all links resolved
Known bugs
if perl is invoked as
perl filename
and filename does not have executable rights and a program called filename exists in the users $ENV{PATH} which satisfies both -x and -T then FindBin assumes that it was invoked via the $ENV{PATH}.
Workaround is to invoke perl as
perl ./filename
Revision
$Revision: 1.4 $
Releases
5 releases since Debian 1.2 (Rex); the text changed 3 times.