我不想使用Data :: Dumper的默认设置,我该怎么办?

per*_*man 2 perl data-dumper

我发现自己使用这种方法一直打印出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()困扰我时,想到创建一个新对象并执行长链初始化.

我可以使用另一个字符串吗?

Cha*_*ens 5

选项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)

  • 使用`local`来设置它们.例如`{local $ Data :: Dumper :: Terse = 1; 说翻斗车($ x); }` (5认同)

Ran*_*rtz 5

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)

未经测试,但这样的事情应该有效.