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;

introduzca la descripción de la imagen aquí

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:

  1. El nombre de la variable
  2. El contenido de esa variable (en un formato legible).
  3. La línea del archivo que show se ejecuta desde
  4. 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 .



Modified text is an extract of the original Stack Overflow Documentation
Licenciado bajo CC BY-SA 3.0
No afiliado a Stack Overflow