Some parts of this page were machine translated.
Powered by Yandex.Translate
http://translate.yandex.com/
Dans le langage de programmation Perl, il est parfois nécessaire d'imprimer le contenu de hachage.
Dans le langage de programmation Perl, il est parfois nécessaire d'imprimer le contenu de hachage.
Par exemple, il y a de hachage %h
avec le contenu suivant:
my %h = (
John => 'red',
Alice => 'silver',
Bob => 'yellow',
);
En fonction de ce que vous souhaitez, il ya plusieurs façons que vous pouvez imprimer le hachage.
Data::Dumper
Dans ce cas, si vous avez besoin rapidement de voir que contient le hachage, pour cela
pratique pour utiliser le module de Data::Dumper
. Cela peut être utile
dans le processus de développement ou de déboguer le programme.
Voici un exemple de code:
#!/usr/bin/perl
use strict;
use warnings;
use Data::Dumper;
my %h = (
John => 'red',
Alice => 'silver',
Bob => 'yellow',
);
print Dumper \%h;
Voici ce qu'affiche ce programme:
$VAR1 = {
'Bob' => 'yellow',
'Alice' => 'silver',
'John' => 'red'
};
Le hachage de conserve en soi n'est pas ordonnée, des paires de valeurs. Différents programmes de démarrage va sortir une paire dans le même ordre.
print
Et si tout simplement passer le hachage en print
?
#!/usr/bin/perl
use strict;
use warnings;
my %h = (
John => 'red',
Alice => 'silver',
Bob => 'yellow',
);
print %h;
Le programme affiche une ligne de la forme:
JohnredBobyellowAlicesilver
On voit que dans ce cas print
a sur l'écran ensemble de toutes les paires de clé / valeur de hachage.
Le hachage de conserve en soi n'est pas ordonnée, des paires de valeurs. Les différents lancements de programmes de délivrer conclusion différente.
print
et la variable $,
Si il suffit de spécifier print %h;
, il imprime toutes les paires clé-valeur de l'ensemble.
Vous pouvez demander à perl d'insérer un symbole entre les éléments. Par exemple,
le caractère de nouvelle ligne \n
.
Pour ce faire, vous devez placer ce caractère dans la variable spéciale $,
. Voici le code:
#!/usr/bin/perl
use strict;
use warnings;
my %h = (
John => 'red',
Alice => 'silver',
Bob => 'yellow',
);
$, = "\n";
print %h;
L'un des résultats possibles de fonctionnement du programme (données hachage ne sont pas classés par conséquent, les différents lancements vont sortir une paire dans le même ordre):
Bob
yellow
Alice
silver
John
red
Mais de cette manière vous devez utiliser avec précaution. La variable $,
— global. Si
vous changez, il change pour l'ensemble du programme. Dans certaines situations
a du sens ou de ne pas utiliser cette méthode, soit de conserver la valeur de
cette variable dans une variable temporaire, et après print
de ramener la valeur
par exemple, ainsi:
#!/usr/bin/perl
use strict;
use warnings;
my %h = (
John => 'red',
Alice => 'silver',
Bob => 'yellow',
);
my $saved = $,;
$, = "\n";
print %h;
$, = $saved;
Le plus puissant et flexible de façon à la manière d'afficher le contenu de hachage d'écran parcourir toutes les valeurs de hachage et de l'afficher sur l'écran comme vous le souhaitez. Voici un exemple de comment vous pouvez le faire:
#!/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}";
}
La sortie du programme est toujours le même:
Alice silver
Bob yellow
John red
Pour des paires de valeurs dans le hachage de l'ordre indéfini, mais dans ce programme, utilisez le sort
pour
pour afficher les clés dans l'ordre alphabétique.