Some parts of this page were machine translated.
Powered by Yandex.Translate
http://translate.yandex.com/
Nel linguaggio di programmazione Perl a volte si verifica la necessità di stampare il contenuto di un hash.
Nel linguaggio di programmazione Perl a volte si verifica la necessità di stampare il contenuto di un hash.
Ad esempio, un hash %h
con il seguente contenuto:
my %h = (
John => 'red',
Alice => 'silver',
Bob => 'yellow',
);
A seconda di ciò che si desidera, ci sono diversi modi come è possibile stampare hash.
Data::Dumper
Nel caso in cui bisogno di vedere rapidamente che contiene in хеше, per questo
è conveniente utilizzare il modulo Data::Dumper
. Questo può tornare utile
nel processo di sviluppo o eseguire il debug del programma.
Ecco un esempio di codice:
#!/usr/bin/perl
use strict;
use warnings;
use Data::Dumper;
my %h = (
John => 'red',
Alice => 'silver',
Bob => 'yellow',
);
print Dumper \%h;
Ecco cosa porterà questo programma:
$VAR1 = {
'Bob' => 'yellow',
'Alice' => 'silver',
'John' => 'red'
};
Hash conserva in sé non coppie ordinate di valori. Diversi programmi di avvio visualizza le coppie in ordine diverso.
print
E se semplicemente passare hash in print
?
#!/usr/bin/perl
use strict;
use warnings;
my %h = (
John => 'red',
Alice => 'silver',
Bob => 'yellow',
);
print %h;
Il programma visualizza una riga del tipo:
JohnredBobyellowAlicesilver
Visto che in questo caso print
ha lo schermo insieme tutte le coppie chiave-valore di hash.
Hash conserva in sé non coppie ordinate di valori. Diversi lanci il programma emetterà una diversa conclusione.
print
e variabile $,
Se solo specificare print %h;
, questo stamperà tutte le coppie chiave-valore insieme.
È possibile chiedere perl inserire un simbolo tra gli elementi. Ad esempio,
il carattere di nuova riga \n
.
Per questo è necessario mettere questo simbolo in una variabile $,
. Ecco il codice:
#!/usr/bin/perl
use strict;
use warnings;
my %h = (
John => 'red',
Alice => 'silver',
Bob => 'yellow',
);
$, = "\n";
print %h;
Uno dei possibili risultati del programma (dati in хеше non sono ordinati, quindi diversi lanci di prelevare le coppie in ordine diverso):
Bob
yellow
Alice
silver
John
red
Ma questo metodo deve essere usato con cautela. Variabile $,
— global. Se
si cambia, quello che cambia per l'intero programma. In alcune situazioni
ha senso o non utilizzare questo metodo, o mantenere il valore
questa variabile in una variabile temporanea, e dopo print
tornare al suo valore,
ad esempio, in questo modo:
#!/usr/bin/perl
use strict;
use warnings;
my %h = (
John => 'red',
Alice => 'silver',
Bob => 'yellow',
);
my $saved = $,;
$, = "\n";
print %h;
$, = $saved;
Il più potente e flessibile per come visualizzare il contenuto di hash lo schermo è passare per tutti i valori del хеше e disattivare lo schermo in forma come si deve. Ecco uno degli esempi di come si può fare:
#!/usr/bin/perl
use strict;
use warnings;
use feature qw(say);
my %h = (
John => 'red',
Alice => 'silver',
Bob => 'yellow',
);
foreach my $name (sort keys %h) {
say "$name $h{$name}";
}
L'output del programma è sempre lo stesso:
Alice silver
Bob yellow
John red
Per le coppie di valori in хеше ordine indeterminato, ma in questo programma viene utilizzato sort
al fine
per ritirare le chiavi in ordine alfabetico.