我发现自己使用这种方法一直打印出Perl值:
sub d {
Data::Dumper->new([])->Terse(1)->Indent(0)->Values([$_[0]])->Dump;
}
say "x = ", d($x), ' y = ', d($y);
Run Code Online (Sandbox Code Playgroud)
我喜欢这个,因为我不希望$VAR1 =输出,我很少处理递归数据结构.
但是Data::Dumper每当我打电话d()困扰我时,想到创建一个新对象并执行长链初始化.
我可以使用另一个字符串吗?
选项1,使用Data::Dumper变量:
$Data::Dumper::Terse = 1;
$Data::Dumper::Indent = 0;
say Dumper "x =", Dumper($x), " y = ", Dumper($y);
Run Code Online (Sandbox Code Playgroud)
sub d {
use feature 'state';
state $dd = Data::Dumper->new([])->Terse(1)->Indent(0);
return $dd->Values(shift)->Dump;
}
Run Code Online (Sandbox Code Playgroud)
未经测试,但这样的事情应该有效.