Perl Language
Salida de depuración
Buscar..
Dumping estructuras de datos
use Data::Dumper;
my $data_structure = { foo => 'bar' };
print Dumper $data_structure;
Usar Data :: Dumper es una forma fácil de ver las estructuras de datos o el contenido variable en tiempo de ejecución. Se envía con Perl y puedes cargarlo fácilmente. La función Dumper
devuelve la estructura de datos serializada de forma que se parece al código Perl.
$VAR1 = {
'foo' => 'bar',
}
Eso lo hace muy útil para observar rápidamente algunos valores en su código. Es una de las herramientas más útiles que tienes en tu arsenal. Lea la documentación completa en metacpan .
Dumping con estilo
A veces, Data :: Dumper no es suficiente. ¿Tienes un objeto Moose que quieres inspeccionar? ¿Grandes números de la misma estructura? ¿Quieres cosas ordenadas? ¿De colores? Datos :: La impresora es tu amiga.
use Data::Printer;
p $data_structure;
Datos :: Impresora escribe a STDERR, como warn
. Eso hace que sea más fácil encontrar la salida. Por defecto, ordena las claves hash y mira los objetos.
use Data::Printer;
use LWP::UserAgent;
my $ua = LWP::UserAgent->new;
p $ua;
Observará todos los métodos del objeto y también enumerará los aspectos internos.
LWP::UserAgent {
Parents LWP::MemberMixin
public methods (45) : add_handler, agent, clone, conn_cache, cookie_jar, credentials, default_header, default_headers, delete, env_proxy, from, get, get_basic_credentials, get_my_handler, handlers, head, is_online, is_protocol_supported, local_address, max_redirect, max_size, mirror, new, no_proxy, parse_head, post, prepare_request, progress, protocols_allowed, protocols_forbidden, proxy, put, redirect_ok, remove_handler, request, requests_redirectable, run_handlers, send_request, set_my_handler, show_progress, simple_request, ssl_opts, timeout, use_alarm, use_eval
private methods (4) : _agent, _need_proxy, _new_response, _process_colonic_headers
internals: {
def_headers HTTP::Headers,
handlers {
response_header HTTP::Config
},
local_address undef,
max_redirect 7,
max_size undef,
no_proxy [],
protocols_allowed undef,
protocols_forbidden undef,
proxy {},
requests_redirectable [
[0] "GET",
[1] "HEAD"
],
show_progress undef,
ssl_opts {
verify_hostname 1
},
timeout 180,
use_eval 1
}
}
Puede configurarlo más, por lo que serializa ciertos objetos de cierta manera, o para incluir objetos hasta una profundidad arbitraria. La configuración completa está disponible en la documentación .
Desafortunadamente, Data :: Printer no se envía con Perl, por lo que necesita instalarlo desde CPAN o a través de su sistema de administración de paquetes.
Dumping lista de matriz
my @data_array = (123, 456, 789, 'poi', 'uyt', "rew", "qas");
print Dumper @data_array;
El uso de Data :: Dumper permite acceder fácilmente a los valores de la lista de búsqueda. El Dumper
devuelve los valores de lista serializados de forma que se parece al código Perl.
Salida:
$VAR1 = 123;
$VAR2 = 456;
$VAR3 = 789;
$VAR4 = 'poi';
$VAR5 = 'uyt';
$VAR6 = 'rew';
$VAR7 = 'qas';
Según lo sugerido por el usuario @dgw Cuando se eliminan matrices o hashes, es mejor usar una referencia de matriz o una referencia de hash, se mostrará mejor el ajuste de la entrada.
$ref_data = [23,45,67,'mnb','vcx'];
print Dumper $ref_data;
Salida:
$VAR1 = [
23,
45,
67,
'mnb',
'vcx'
];
También puede hacer referencia a la matriz al imprimir.
my @data_array = (23,45,67,'mnb','vcx');
print Dumper \@data_array;
Salida:
$VAR1 = [
23,
45,
67,
'mnb',
'vcx'
];
Muestra de datos
La función show
se exporta automáticamente cuando se use Data::Show;
es ejecutado. Esta función toma una variable como único argumento y genera:
- El nombre de la variable
- El contenido de esa variable (en un formato legible).
- La línea del archivo que
show
se ejecuta desde - el archivo
show
se ejecuta desde
Suponiendo que lo siguiente es código del archivo example.pl
:
use strict;
use warnings;
use Data::Show;
my @array = (1, 2, 3, 4, 5, 6, 7, 8, 9, 10);
my %hash = ( foo => 1, bar => { baz => 10, qux => 20 } );
my $href = \%hash;
show @array;
show %hash;
show $href;
perl example.pl
da el siguiente resultado:
======( @array )=======================[ 'example.pl', line 11 ]======
[1 .. 10]
======( %hash )========================[ 'example.pl', line 12 ]======
{ bar => { baz => 10, qux => 20 }, foo => 1 }
======( $href )========================[ 'example.pl', line 13 ]======
{ bar => { baz => 10, qux => 20 }, foo => 1 }
Consulte la documentación de Data::Show
.