只是感兴趣:在下面的代码片段中有没有办法做第二种形式的Dumper?
use Modern::Perl;
use Data::Dumper::Simple;
my $data = { name => 'jim', age => 21, updated => time() };
my $timestr = localtime($data->{updated});
say Dumper($data->{updated}, $timestr);
# output:
# $data->{updated} = 1338537112;
# $timestr = 'Fri Jun 1 08:51:52 2012';
say Dumper($data->{updated}, scalar localtime($data->{updated} ));
# compiliation error:
# say (...) interpreted as function at c:\temp\test4.pl line 9.
# syntax error at c:\temp\test4.pl line 9, near "}]"
答案 0 :(得分:7)
引用the docs:
不要尝试使用参数列表中的子例程调用Dumper():
Dumper($foo, some_sub()); # Bad!
过滤器被括号弄糊涂了。你的作者要去 修复此问题,但很明显Dumper()没办法 可以弄清楚如何命名子程序的返回值, 从而确保进一步破损。所以不要这样做。