我有兴趣在没有.pl
This: 的情况下获取正在运行的脚本的名称:my ($script) = $0 =~ /(.*)\.pl/;
似乎有效。我想知道是否有另一种更标准的方法
问问题
4892 次
3 回答
3
fileparse
从File::Basename使用。这是一个核心模块,因此它始终可用于您的发行版。
use File::Basename;
my ( $name, $path, $suffix ) = fileparse( $0, qr{\.[^.]*$} );
print "NAME=$name\n";
print "PATH=$path\n";
print "SFFX=$suffix\n";
用于查找点的正则表达式suffix
,后跟任何不是点的内容,零次或多次,锚定到字符串的末尾。
如果正在运行的脚本是/mypath/myfile.pl
这样的,则返回:
NAME=myfile
PATH=/mypath/
SFFX=.pl
于 2013-10-19T20:30:07.807 回答
1
脚本名称在
print $0;
就像你写的..
如果您只想拥有没有 .pl 的名称
-i- 会这样做:
my $script = $0;
$script =~ s/\.pl//;
我认为选择这个或那个没有任何性能问题;)
于 2013-10-19T19:29:13.697 回答
0
最后一个示例是如果您在没有路径的情况下运行程序。但是从 crontab /path/to/dir/script.pl
my $script = $0;
$script =~ s/\.pl//;
会给你
/path/to/dir/script
于 2017-03-22T18:56:58.620 回答