FindBin模块在文件嵌套时的返回值

转自:http://www.zebraol.com/?p=35


我们知道,Perl的FindBin模块可以取得当前正在运行的Perl脚本的文件路径以及文件名。
可是,如果多个文件嵌套调用呢,例如文件A调用文件B,那么B中的FindBin返回的脚本名称应该是B还是A呢?

这里做一个试验,详述如下:

一、被调用脚本in.pl

#!/usr/bin/perl -w
use FindBin;
 
use strict;
sub fun { print "$FindBin::Bin/$FindBin::Script\n"; }
 
1;


二、主调脚本p.pl

#!/usr/bin/perl -w
 
use strict;
require "in.pl";
 
fun();


三、主调脚本执行结果:

$./p.pl
/data/home/anybody/p.pl

显然,这里FindBin模块尽管在B脚本中调用,但由于B脚本被A脚本调用,因此这里返回的脚本名称仍然是A。



你可能感兴趣的:(脚本,perl,fun)