Как мне сделать что -то вроде «print dumper $ var» в Embperl

StackOverflow https://stackoverflow.com/questions/4562574

  •  14-10-2019
  •  | 
  •  

Вопрос

Как мне сделать что -то вроде «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

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top