5

只是感兴趣:有没有办法在下面的代码片段中做第二种形式的 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 "}]"
4

1 回答 1

7

引用文档

不要尝试使用参数列表中的子例程调用 Dumper():

Dumper($foo, some_sub()); # Bad!

过滤器被括号弄糊涂了。您的作者打算解决这个问题,但很明显 Dumper() 无法弄清楚如何命名子例程的返回值,从而确保进一步破坏。所以不要那样做。

于 2012-06-01T08:10:17.133 回答