2010-12-30 1 views
0

Как сделать что-то вроде 'печать Dumper $ Var' в Embperl - я это сделал:

[- 
$var = (some hash) ; 
use Data::Dumper 
print Dumper $var 
-] 

и это

[+ Dumper $var +] 

... но не смог получить какой-либо выход.

ответ

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"]); -] 
--> 
+0

Cheers - Я думаю, что это была иой вещь, которая бросала меня - новая для EmbedPerl - больше ТТОГО парня :-) – Hogsmill

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

 Смежные вопросы

  • Нет связанных вопросов^_^