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