2014-04-15 105 views
2

我想寫某事像:如何判斷死亡時的行號?

die "Error in file $0 line number $line_number_of_this_cmd_in_file \n"; 

在我的Perl腳本文件。

任何幫助? Thx很多!

(perl的5)

+0

看看[鯉魚](http://search.cpan.org/~zefram/Carp-1.3301/lib/Carp.pm)的'croak'。如果您使用'croak'而不是'die',那麼在運行'perl -MCarp = verbose script.pl'時可以獲得完整的堆棧跟蹤。 – Lucas

+0

'die'已經報告了行號,你想更改號碼嗎? – perreal

回答

7

這是很容易的:丟棄\n在該行的末尾,die將追加你的腳本的名稱和行號寫任何消息。 例如:

die "Encountered error 15 "; 

將導致它打印:

"Encountered error 15 at script.pl line 42\n" 

或任何適用。

9

如果你不把\ n放在你傳遞的字符串末尾,那麼perl會自動添加行號。

否則,令牌__LINE__將在腳本中給出當前行號(並且__FILE__給出當前文件名)。

除非您的意思是您剛纔讀取的文件的當前行號 - 可在$中找到。