Как мне сделать что-то вроде "print Dumper $var" в Embperl
Как мне сделать что-то вроде 'print Dumper $var' в Embperl - я сделал это:
[-
$var = (some hash) ;
use Data::Dumper
print Dumper $var
-]
и это
[+ Dumper $var +]
... но не смог получить никакого вывода.
2 ответа
Я обычно использую Data::Dumper's 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"]); -]
-->
Вы имели в виду 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