ADC Home > Reference Library > Reference > Mac OS X > Mac OS X Man Pages

 

This document is a Mac OS X manual page. Manual pages are a command-line technology for providing documentation. You can view these manual pages locally using the man(1) command. These manual pages come from many different sources, and thus, have a variety of writing styles.

For more information about the manual page format, see the manual page for manpages(5).



FindBin(3pm)                          Perl Programmers Reference Guide                          FindBin(3pm)



NAME
       FindBin - Locate directory of original perl script

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

        or

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

DESCRIPTION
       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 ISSUES
       If there are two modules using "FindBin" from different directories under the same interpreter, this
       won't work. Since "FindBin" uses a "BEGIN" block, it'll be executed only once, and only the first
       caller will get it right. This is a problem under mod_perl and other persistent Perl environments,
       where you shouldn't use this module. Which also means that you should avoid using "FindBin" in mod-ules modules
       ules that you plan to put on CPAN. To make sure that "FindBin" will work is to call the "again" func-tion: function:
       tion:

         use FindBin;
         FindBin::again(); # or FindBin->again;

       In former versions of FindBin there was no "again" function. The workaround was to force the "BEGIN"
       block to be executed again:

         delete $INC{'FindBin.pm'};
         require FindBin;

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

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

       Graham Barr <gbarr@pobox.com> Nick Ing-Simmons <nik@tiuk.ti.com>

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



perl v5.8.8                                      2001-09-21                                     FindBin(3pm)

Did this document help you?
Yes: Tell us what works for you.
It’s good, but: Report typos, inaccuracies, and so forth.
It wasn’t helpful: Tell us what would have helped.