FindBin

本文介绍Perl中的FindBin模块,该模块用于定位原始Perl脚本目录,以便使用相对于该目录的路径。文章解释了如何利用FindBin来配置软件目录树,并讨论了其在不同情况下的行为及已知的问题。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

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

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

 

COPYRIGHT

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.

 

REVISION

$Revision: 1.4 $

 

openwrt遇到以下错误,如何解决: bash: error while loading shared libraries: libtinfo.so.5: cannot open shared object file: No such file or directory bash: error while loading shared libraries: libtinfo.so.5: cannot open shared object file: No such file or directory awk: error while loading shared libraries: libreadline.so.6: cannot open shared object file: No such file or directory bash: error while loading shared libraries: libtinfo.so.5: cannot open shared object file: No such file or directory bash: error while loading shared libraries: libtinfo.so.5: cannot open shared object file: No such file or directory awk: error while loading shared libraries: libreadline.so.6: cannot open shared object file: No such file or directory awk: error while loading shared libraries: libreadline.so.6: cannot open shared object file: No such file or directory bash: error while loading shared libraries: libtinfo.so.5: cannot open shared object file: No such file or directory bash: error while loading shared libraries: libtinfo.so.5: cannot open shared object file: No such file or directory awk: error while loading shared libraries: libreadline.so.6: cannot open shared object file: No such file or directory Can't locate FindBin.pm in @INC (you may need to install the FindBin module) (@INC contains: /etc/perl /usr/local/lib/x86_64-linux-gnu/perl/5.22.1 /usr/local/share/perl/5.22.1 /usr/lib/x86_64-linux-gnu/perl5/5.22 /usr/share/perl5 /usr/lib/x86_64-linux-gnu/perl/5.22 /usr/share/perl/5.22 /usr/local/lib/site_perl /usr/lib/x86_64-linux-gnu/perl-base .) at ./scripts/metadata.pl line 2. BEGIN failed--compilation aborted at ./scripts/metadata.pl line 2. Failed to build tmp/.config-package.in Can't locate FindBin.pm in @INC (you may need to install the FindBin module) (@INC contains: /etc/perl /usr/local/lib/x86_64-linux-gnu/perl/5.22.1 /usr/local/share/perl/5.22.1 /usr/lib/x86_64-linux-gnu/perl5/5.22 /usr/share/perl5 /usr/lib/x86_64-linux-gnu/perl/5.22 /usr/share/perl/5.22 /usr/local/lib/site_perl /usr/lib/x86_64-linux-gnu/perl-base .) at ./scripts/metadata.pl line 2. BEGIN failed--compilation aborted at ./scripts/metadata.pl line 2. make[1]: *** [/home/gw/openwrt-15.05.1/include/toplevel.mk:75: prepare-tmpinfo] Error 1 make: *** [/home/gw/openwrt-15.05.1/include/toplevel.mk:181: world] Error 2
最新发布
08-09
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值