Data::Dumper 结果警告时如何获取行号?
How to get line numbers when warning with Data::Dumper result?
warn
在以下两种情况下表现不同:
#! /usr/bin/perl
use warnings;
use strict;
use Data::Dumper;
warn "string";
warn Dumper("string");
第一个打印:
string at dumper.pl line 6.
第二个只打印:
$VAR1 = 'string';
没有任何行号。
如何在使用 Dumper 结果发出警告时获取行号?
只需在 Dumper 调用后连接一个字符串:
warn Dumper("string").' ';
产量
$VAR1 = 'string';
at /tmp/execpad-a668561a2ac4/source-a668561a2ac4 line 7.
在 eval.in。
请参阅 warn
函数的文档:
$ perldoc -f warn
warn LIST
Prints the value of LIST to STDERR. If the last element of LIST
does not end in a newline, it appends the same file/line number
text as "die" does.
(... and much more information that is worth reading ...)
在您的情况下,Dumper()
的输出以换行符结尾,因此不会打印 file/line 数字。
之所以不同是因为字符串以新行结尾。
warn "test";
warn "test\n";
Dumper
的输出包括一个换行符,所以在末尾连接任何内容都可以。
或者直接引用 __LINE__
:
warn Dumper ("error") . "at line:" .__LINE__."\n";
(见perldoc warn
)
warn
在以下两种情况下表现不同:
#! /usr/bin/perl
use warnings;
use strict;
use Data::Dumper;
warn "string";
warn Dumper("string");
第一个打印:
string at dumper.pl line 6.
第二个只打印:
$VAR1 = 'string';
没有任何行号。
如何在使用 Dumper 结果发出警告时获取行号?
只需在 Dumper 调用后连接一个字符串:
warn Dumper("string").' ';
产量
$VAR1 = 'string';
at /tmp/execpad-a668561a2ac4/source-a668561a2ac4 line 7.
在 eval.in。
请参阅 warn
函数的文档:
$ perldoc -f warn
warn LIST
Prints the value of LIST to STDERR. If the last element of LIST
does not end in a newline, it appends the same file/line number
text as "die" does.
(... and much more information that is worth reading ...)
在您的情况下,Dumper()
的输出以换行符结尾,因此不会打印 file/line 数字。
之所以不同是因为字符串以新行结尾。
warn "test";
warn "test\n";
Dumper
的输出包括一个换行符,所以在末尾连接任何内容都可以。
或者直接引用 __LINE__
:
warn Dumper ("error") . "at line:" .__LINE__."\n";
(见perldoc warn
)