如何在Embperl中执行类似“print Dumper $var”之类的操作- 我这样做了:
[-
$var = (some hash) ;
use Data::Dumper
print Dumper $var
-]
和这个
[+ Dumper $var +]
...但无法获得任何输出。
我通常使用 Data::Dumper 的Dump
方法,它会生成一个字符串,我可以用它做任何我想做的事情。
[! use Data::Dumper; # Only need to do once !]
[-
$var = (some hashref);
print Data::Dumper->Dump([$var, \@var2, \%var3]);
# Note that Dump takes an arrayref of SCALARs, therefore
# if you have arrays/hashes, you need to pass references to those
-]
但是,请记住,在 EmbPerl 中,您需要小心打印的位置:
要打印到 Apache 的错误日志,请打印到 STDERR:
[-
print STDERR Data::Dumper->Dump([$var, \@var2, \%var3]);
-]
要打印到您的网页、打印以OUT
处理或使用[+ +]
包含。如果是调试打印,我通常只是将其粘贴在 HTML 注释中:
<!-- DEBUG
[+ Data::Dumper->Dump([$var, \@var2, \%var3]); +]
[- print OUT Data::Dumper->Dump([$x1, $x2], ["VarName1", "VarName2"]); -]
-->
你说的是 Emberl 吗?
如果你想用 Data::Dumper 转储一个变量,你需要传递它的引用。在你的情况下:
use Data::Dumper;
my %hashvar = (a => 1, b => 2);
print Dumper(\%hashvar);
或者
use Data::Dumper;
my $hashref= {a => 1, b => 2};
print Dumper($hashref);
在第一种情况下,变量是散列,因此您必须获取它的引用;在第二个中,您引用了哈希,因此按原样传递给Data::Dumper