我怎样才能获得脚本的名称?
例如,我有一个名为Perl的脚本XXX.pl.该文件包含:
$name = #some function that obtains the script's own name
print $name;
Run Code Online (Sandbox Code Playgroud)
输出:
XXX.pl
Run Code Online (Sandbox Code Playgroud)
我想将其比作获取脚本目录的CWD函数.我需要一个获取脚本名称的函数.
mkb*_*mkb 43
use File::Basename;
my $name = basename($0);
Run Code Online (Sandbox Code Playgroud)
PS.getcwd() 和朋友们不给你脚本的目录!他们为您提供工作目录.如果脚本在你的PATH中而你只是按名称而不是通过它的完整路径来调用它,那么getcwd()就不会按照你说的去做.你想要dirname($0)(dirname也在File::Basename).
msb*_*msb 10
您可能也有兴趣了解更多关于__FILE__,并且可能__LINE__,它为您提供当前行,并且我经常一起使用.
如果您希望将其用于调试目的,您可能还需要了解" warn"," Carp"," caller".
查看模块FindBin,它是核心 Perl 发行版的一部分。它导出您正在寻找的变量
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
Run Code Online (Sandbox Code Playgroud)