首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何在Embperl中执行类似“print Dumper $var”的操作

如何在Embperl中执行类似“print Dumper $var”的操作
EN

Stack Overflow用户
提问于 2010-12-30 20:26:40
回答 2查看 1.6K关注 0票数 0

我如何在Embperl中做类似‘打印Dumper $var’的事情-我做到了:

代码语言:javascript
复制
[-
$var = (some hash) ;
use Data::Dumper
print Dumper $var
-]

还有这个

代码语言:javascript
复制
[+ Dumper $var +]

...but无法获取任何输出。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2010-12-30 22:27:22

我通常使用Data::Dumper的Dump方法,它生成一个字符串,我可以用它做任何我想做的事情。

代码语言:javascript
复制
[! 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:

代码语言:javascript
复制
[-
print STDERR Data::Dumper->Dump([$var, \@var2, \%var3]);
-]

若要打印到您的网页,请打印到OUT句柄,或使用[+ +] includes。如果是调试打印,我通常只将它放在HTML注释中:

代码语言:javascript
复制
<!-- DEBUG
[+ Data::Dumper->Dump([$var, \@var2, \%var3]); +]
[- print OUT Data::Dumper->Dump([$x1, $x2], ["VarName1", "VarName2"]); -]
-->
票数 5
EN

Stack Overflow用户

发布于 2010-12-30 20:51:42

你是说Embperl吗?

如果要转储包含Data::Dumper的变量,则需要传递其引用。在您的案例中:

代码语言:javascript
复制
use Data::Dumper;
my %hashvar = (a => 1, b => 2);
print Dumper(\%hashvar);

代码语言:javascript
复制
use Data::Dumper;
my $hashref= {a => 1, b => 2};
print Dumper($hashref);

在第一种情况下,变量是一个哈希,因此您必须引用它;在第二种情况下,您有一个对哈希的引用,因此会按原样传递给Data::Dumper

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/4562574

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档