我有Perl脚本,需要在执行期间确定脚本的完整路径和文件名。我发现,根据脚本的调用方式,$0
会有所不同,有时包含fullpath+filename
,有时仅包含filename
。因为工作目录也可能不同,所以我想不出一种可靠的方法来获取脚本的fullpath+filename
。
有人有解决方案吗?
发布于 2008-09-17 16:31:53
use File::Spec;
File::Spec->rel2abs( __FILE__ );
发布于 2008-09-17 16:22:40
我想你要找的模块是FindBin:
#!/usr/bin/perl
use FindBin;
$0 = "stealth";
print "The actual path to this is: $FindBin::Bin/$FindBin::Script\n";
发布于 2008-09-17 16:29:15
您可以使用FindBin、Cwd、File::Basename或它们的组合。它们都在Perl IIRC的基础发行版中。
我以前用过Cwd:
Cwd:
use Cwd qw(abs_path);
my $path = abs_path($0);
print "$path\n";
https://stackoverflow.com/questions/84932
复制相似问题