You are viewing the version of this documentation from Perl 5.6.2. View the latest version



FindBin - Locate directory of original perl script


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


use FindBin qw($Bin);
use lib "$Bin/../lib";


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.


$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


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


FindBin is supported as part of the core perl distribution. Please send bug reports to <> using the perlbug program included with perl.

Graham Barr <> Nick Ing-Simmons <>


Copyright (c) 1995 Graham Barr & Nick Ing-Simmons. All rights reserved. This program is free software; you can redistribute it and/or modify it under the same terms as Perl itself.