我有 Perl 脚本,需要在执行期间确定脚本的完整路径和文件名。我发现,根据您调用脚本的方式,脚本会有所不同,有时$0包含. 因为工作目录也可能会有所不同,所以我想不出一种可靠地获取脚本的方法。fullpath+filename``filename``fullpath+filename
$0
fullpath+filename``filename``fullpath+filename
有人有解决方案吗?
有几种方法:
cwd()
getcwd()
abs_path()
Cwd
FindBin
$Bin
$RealBin
$Script
$RealScript
__FILE__
我已经看到前三个($0,Cwd模块和FindBin模块 )在壮观的情况下失败mod_perl,产生无价值的输出,例如'.'或空字符串。在这样的环境中,我使用模块__FILE__并从中获取路径File::Basename:
mod_perl
'.'
File::Basename
use File::Basename; my $dirname = dirname(__FILE__);