Perl Language
Debug Output
Ricerca…
Dumping di strutture dati
use Data::Dumper;
my $data_structure = { foo => 'bar' };
print Dumper $data_structure;
L'utilizzo di Data :: Dumper è un modo semplice per esaminare strutture dati o contenuto variabile in fase di esecuzione. Viene fornito con Perl e puoi caricarlo facilmente. La funzione Dumper
restituisce la struttura dati serializzata in un modo simile al codice Perl.
$VAR1 = {
'foo' => 'bar',
}
Ciò rende molto utile esaminare rapidamente alcuni valori nel codice. È uno degli strumenti più utili che hai nel tuo arsenale. Leggi la documentazione completa su metacpan .
Dumping con stile
A volte Data :: Dumper non è sufficiente. Hai un oggetto Moose che vuoi ispezionare? Numeri enormi della stessa struttura? Vuoi ordinare le cose? Colorato? Dati :: La stampante è tua amica.
use Data::Printer;
p $data_structure;
Dati :: La stampante scrive su STDERR, come warn
. Ciò rende più facile trovare l'output. Per impostazione predefinita, ordina le chiavi hash e guarda gli oggetti.
use Data::Printer;
use LWP::UserAgent;
my $ua = LWP::UserAgent->new;
p $ua;
Analizzerà tutti i metodi dell'oggetto ed elencherà anche gli interni.
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
}
}
È possibile configurarlo ulteriormente, in modo da serializzare determinati oggetti in un determinato modo o includere oggetti fino a una profondità arbitraria. La configurazione completa è disponibile nella documentazione .
Purtroppo Data :: Printer non viene fornito con Perl, quindi è necessario installarlo da CPAN o tramite il sistema di gestione dei pacchetti.
Dumping array list
my @data_array = (123, 456, 789, 'poi', 'uyt', "rew", "qas");
print Dumper @data_array;
Utilizzo di Data :: Dumper consente di accedere facilmente ai valori dell'elenco di recupero. Il Dumper
restituisce i valori della lista serializzati in un modo simile al codice Perl.
Produzione:
$VAR1 = 123;
$VAR2 = 456;
$VAR3 = 789;
$VAR4 = 'poi';
$VAR5 = 'uyt';
$VAR6 = 'rew';
$VAR7 = 'qas';
Come suggerito dall'utente @dgw Quando si eseguono il dumping di matrici o hash, è meglio usare un riferimento di matrice o un riferimento di hash, quelli saranno mostrati meglio adattati all'input.
$ref_data = [23,45,67,'mnb','vcx'];
print Dumper $ref_data;
Produzione:
$VAR1 = [
23,
45,
67,
'mnb',
'vcx'
];
È anche possibile fare riferimento alla matrice durante la stampa.
my @data_array = (23,45,67,'mnb','vcx');
print Dumper \@data_array;
Produzione:
$VAR1 = [
23,
45,
67,
'mnb',
'vcx'
];
Data :: Visualizza
La funzione show
viene automaticamente esportata quando si use Data::Show;
viene eseguito. Questa funzione accetta una variabile come argomento esclusivo e restituisce:
- il nome della variabile
- il contenuto di quella variabile (in un formato leggibile)
- la riga del file che
show
viene eseguita da - il file
show
viene eseguito da
Supponendo che quanto segue è il codice dal file 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
fornisce il seguente risultato:
======( @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 }
Vedere la documentazione per Data::Show
.