如何在Embperl中执行'print Dumper $ var'之类的操作 - 我这样做了:
[-
$var = (some hash) ;
use Data::Dumper
print Dumper $var
-]
和这个
[+ Dumper $var +]
...但无法获得任何输出。
答案 0 :(得分:5)
我通常使用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"]); -]
-->
答案 1 :(得分:1)
您的意思是Embperl吗?
如果要使用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