目录

NAME FindBin::Real - Locate directory of original perl script

SYNOPSIS use FindBin::Real; use lib FindBin::Real::Bin() . ‘/../lib’;

 or

 use FindBin::Real qw(Bin);
 use lib Bin() . '/../lib';

 or

 # Run from /usr/bin/www/some/path/ or /usr/bin/www/some/other/path or any
 use FindBin::Real qw(BinDepth);
 use lib BinDepth(3) . '/lib';
 # And always got /usr/bin/www/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()" return values to
the current directory.

EXPORTABLE FUNCTIONS 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

BinDepth(n) - path to n-level parent directory

Dir() - the same as Bin()

RealDir() - the same as RealBin()

KNOWN ISSUES If there are two modules using “FindBin::Real” from different directories under the same interpreter, this WOULD work. Since “FindBin::Real” uses functions instead of “BEGIN” block in “FindBin”, it’ll be executed on every script, and all callers will get it right. This module can be used under mod_perl and other persistent Perl environments, where you shouldn’t use “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 Serguei Trouchelle stro@railways.dp.ua

FindBin::Real uses code from FindBin module, which was written by

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

COPYRIGHT Copyright (c) 1995 Graham Barr & Nick Ing-Simmons. All rights reserved. Copyright (c) 2003-2005 Serguei Trouchelle. All rights reserved.

This program is free software; you can redistribute it and/or modify it
under the same terms as Perl itself.
关于

用于查找Perl脚本的真实路径

43.0 KB
邀请码
    Gitlink(确实开源)
  • 加入我们
  • 官网邮箱:gitlink@ccf.org.cn
  • QQ群
  • QQ群
  • 公众号
  • 公众号

版权所有:中国计算机学会技术支持:开源发展技术委员会
京ICP备13000930号-9 京公网安备 11010802047560号