2013-10-19 34 views

回答

1

另一個更標準的方式腳本名稱是

print $0; 

喜歡你寫的..

,如果你想擁有隻是名稱不特等

-i-會這樣做:

my $script = $0; 
$script =~ s/\.pl//; 

我不認爲這裏是任何表演從File::Basename

see perlvar

2

使用fileparse; ANCE問題,選擇這樣或那樣的一個。這是一個核心模塊,因此它始終可供您的發行版使用。

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 
0

最後一個例子是,如果你不帶路徑運行程序。但是從crontab中 /path/to/dir/script.pl

my $script = $0; 
$script =~ s/\.pl//; 

會給你

/path/to/dir/script  
相關問題