Perl でソース行番号を出力するにはどうすればよいですか?
-
21-08-2019 - |
質問
Perlで現在のソース行番号を取得することは可能ですか?C++ での同等のものは次のとおりです。 __LINE__
.
解決
print "File: ", __FILE__, " Line: ", __LINE__, "\n";
または
warn("foo");
他のヒント
__LINE__ リテラルについては、 特殊なリテラル のセクション perldata のマニュアルページ.
との落とし穴があります注意してください。
perlの-e'warn( "foo" という) '
-e 1行目のfoo
それは改行で終了した場合、は、のでしょうではないの
行番号を印刷しますのPerl -e'warn( "FOOを\ n") '
FOO
このは「ダイ-fはperldoc」に記載が、「警告-fはperldoc」で欠場するかもしれない簡単です死ぬセクションの参照...
このはあなたが行を出力し、また、「スタック」(あなたが今いる場所につながる呼び出すプログラム(スクリプト/モジュール/など)から行のリスト)
while(my @where=caller($frame++)) { print "$frame:" . join(",",@where) . "\n"; }
「鯉を使う」と、様々なルーチンで遊ぶ、あなたはまた、スタックを取得 - この方法は、CNDによって提案された「発信元」の方法よりも良いか悪いかであるかどうかわかりません。私は、デバッグ時に、私はコードやその他の情報になった場所を示すために、CやPerlでLINEとFILE変数(そしておそらく他の類似の変数)を使用していたが、デバッグ環境外ではほとんど価値を見てきました。
所属していません StackOverflow