Perl Language
Wyjście debugowania
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;
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:
- nazwa zmiennej
- zawartość tej zmiennej (w czytelnym formacie)
- wiersz pliku, który
show
jest uruchamiany -
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
.