2012-06-01 11 views
5

Apenas interesado: ¿Hay alguna manera de hacer la segunda forma de Dumper en este fragmento de código siguiente?Data :: Dumper :: Uso simple

use Modern::Perl; 
use Data::Dumper::Simple; 

my $data = { name => 'jim', age => 21, updated => time() }; 

my $timestr = localtime($data->{updated}); 
say Dumper($data->{updated}, $timestr); 
# output: 
# $data->{updated} = 1338537112; 
# $timestr = 'Fri Jun 1 08:51:52 2012'; 

say Dumper($data->{updated}, scalar localtime($data->{updated})); 

# compiliation error: 
# say (...) interpreted as function at c:\temp\test4.pl line 9. 
# syntax error at c:\temp\test4.pl line 9, near "}]" 

Respuesta

7

Cita the docs:

No trate de llamar Volquete() con una subrutina en la lista de argumentos:

Dumper($foo, some_sub()); # Bad!

El filtro se confunde con los paréntesis. Su autor iba a corregir esto, pero se hizo evidente que no había manera de que Dumper() pudiera averiguar cómo nombrar los valores devueltos de las subrutinas, , asegurando así una mayor rotura. Entonces no hagas eso.

Cuestiones relacionadas