Szukaj…


Zrzucanie struktur danych

use Data::Dumper;

my $data_structure = { foo => 'bar' };
print Dumper $data_structure;

Korzystanie z Data :: Dumper jest łatwym sposobem na przeglądanie struktur danych lub zmiennych treści w czasie wykonywania. Jest dostarczany z Perlem i możesz go łatwo załadować. Funkcja Dumper zwraca strukturę danych zserializowaną w sposób, który wygląda jak kod Perla.

$VAR1 = {
        'foo' => 'bar',
}

To sprawia, że bardzo przydatne jest szybkie sprawdzenie niektórych wartości w kodzie. Jest to jedno z najbardziej przydatnych narzędzi, jakie masz w swoim arsenale. Przeczytaj pełną dokumentację dotyczącą metacpan .

Dumping ze stylem

Czasami Data :: Dumper to za mało. Masz obiekt Łoś, który chcesz obejrzeć? Ogromne liczby o tej samej strukturze? Chcesz posortować? Kolorowy? Dane :: Drukarka jest twoim przyjacielem.

use Data::Printer;

p $data_structure;

wprowadź opis zdjęcia tutaj

Dane :: Drukarka zapisuje do STDERR, podobnie jak warn . To ułatwia znalezienie wyjścia. Domyślnie sortuje klucze skrótu i patrzy na obiekty.

use Data::Printer;
use LWP::UserAgent;

my $ua = LWP::UserAgent->new;
p $ua;

Spojrzy na wszystkie metody obiektu, a także wyświetli listę elementów wewnętrznych.

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
    }
}

Możesz go dalej konfigurować, aby serializować określone obiekty w określony sposób lub włączać obiekty do dowolnej głębokości. Pełna konfiguracja jest dostępna w dokumentacji .

Niestety dane :: Drukarka nie jest dostarczana z Perlem, więc musisz zainstalować ją z CPAN lub poprzez system zarządzania pakietami.

Lista tablic zrzutu

my @data_array = (123, 456, 789, 'poi', 'uyt', "rew", "qas");
print Dumper @data_array;

Korzystanie z Data :: Dumper zapewnia łatwy dostęp do wartości z listy pobierania. Dumper zwraca wartości listy zserializowane w sposób, który wygląda jak kod Perla.

Wynik:

$VAR1 = 123;
$VAR2 = 456;
$VAR3 = 789;
$VAR4 = 'poi';
$VAR5 = 'uyt';
$VAR6 = 'rew';
$VAR7 = 'qas';

Zgodnie z sugestią użytkownika @dgw Podczas zrzucania tablic lub skrótów lepiej jest użyć odwołania do tablicy lub skrótu, będą one lepiej pasować do danych wejściowych.

$ref_data = [23,45,67,'mnb','vcx'];
print Dumper $ref_data;

Wynik:

$VAR1 = [
          23,
          45,
          67,
          'mnb',
          'vcx'
        ];

Możesz także odwoływać się do tablicy podczas drukowania.

my @data_array = (23,45,67,'mnb','vcx');
print Dumper \@data_array;

Wynik:

$VAR1 = [
          23,
          45,
          67,
          'mnb',
          'vcx'
        ];

Dane :: Pokaż

Funkcja show jest eksportowana automatycznie przy use Data::Show; jest wykonywany. Ta funkcja przyjmuje zmienną jako swój jedyny argument i generuje:

  1. nazwa zmiennej
  2. zawartość tej zmiennej (w czytelnym formacie)
  3. wiersz pliku, który show jest uruchamiany
  4. show plików jest uruchamiany z

Zakładając, że poniższy kod pochodzi z pliku 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 daje następujący wynik:

======(  @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 }

Zobacz dokumentację Data::Show .



Modified text is an extract of the original Stack Overflow Documentation
Licencjonowany na podstawie CC BY-SA 3.0
Nie związany z Stack Overflow