Comment afficher un tableau Perl

Un tableau est une des structures de base de données dans un langage de programmation Perl. Dans le tableau peuvent être des éléments de différents types.

Il est parfois nécessaire de faire pour afficher le tableau Perl sur l'écran. Il ya plusieurs façons de le faire.

L'utilisation de join()

Le plus souvent la meilleure façon pour afficher les valeurs de Perl d'un tableau à l'écran est d'utiliser la fonction de join(). Avec l'aide de la fonction join() créer une chaîne de valeurs dans le tableau, puis afficher cette chaîne à l'écran. Voici un exemple:

▶ Run
#!/usr/bin/perl

my @arr = (1, 20, 'asdf', 100);

print join(', ', @arr);

Nous avons défini un tableau de @arr qui ont placé quelques chiffres et une chaîne, et plus avec l'aide de join(', ', @arr) , nous avons créé une chaîne et avec l'aide de print , en déduit à l'écran. Le résultat de ce code: 1, 20, asdf, 100. Cette méthode est le fait qu'il est évident.

L'utilisation de Data::Dumper

Parfois, il est nécessaire d'examiner la structure de données qui est stocké dans une variable. Pour ce faire, la bibliothèque Data::Dumper. Cette bibliothèque va de pair avec Perl, séparément ses pas besoin. Avec l'aide de Data::Dumper , vous pouvez voir ce qui se trouve dans la variable. Voici un exemple de code qui affiche les informations à propos d'un tableau:

▶ Run
#!/usr/bin/perl

use Data::Dumper;

my @arr = (1, 20, 'asdf', 100);

print Dumper \@arr;

La sortie du programme:

$VAR1 = [
          1,
          20,
          'asdf',
          100
        ];

L'utilisation de print

Mais outre l'utilisation des join() ou Data::Dumper tableau sur l'écran, vous pouvez retirer à l'aide de print:

▶ Run
#!/usr/bin/perl

my @arr = (1, 20, 'asdf', 100);

print @arr;

Le résultat du programme:

120asdf100

Comme vous pouvez le voir, print @arr a imprimé tous les éléments du tableau d'ensemble. Les éléments d'un tableau dans la sortie n'est pas divisé. Parfois, c'est ce qu'il faut, et parfois non.

Mais au lieu de cela, le mode d' print @arr est souvent préférable d'écrire explicitement print join('', @arr);. Un enregistrement avec join() plus clair pour la lecture de l'homme.

La variable $,

Il existe une variable $,, qui gère de printintègre les éléments d'un tableau lors de sa sortie. Par exemple, vous pouvez compléter l'exemple précédent et placer cette variable est un symbole de ,.

▶ Run
#!/usr/bin/perl

$, = ',';

my @arr = (1, 20, 'asdf', 100);

print @arr;

Le programme affichera un texte dans lequel les éléments d'un tableau sont séparés par des virgules: 1,20,asdf,100.

La variable $, peut contenir non seulement un symbole, mais plusieurs. Si cette variable est affecter la ligne $, = ', ';, alors la sortie sera un peu plus explicite: 1, 20, asdf, 100.

Si la variable $, attribuer un caractère \n, chaque élément de la matrice est affiché sur une ligne distincte:

▶ Run
#!/usr/bin/perl

$, = "\n";

my @arr = (1, 20, 'asdf', 100);

print @arr;

Mais le plus souvent préférable de ne pas utiliser la variable $,, et d'utiliser la fonction join() pour clairement recueillir les valeurs d'un tableau dans une chaîne. Le problème avec la variable $, réside dans le fait que la valeur peut être affectée à un seul endroit du programme, et print qui affecte cette variable se trouve dans un autre endroit du programme. Lors de l'utilisation de join() la valeur de diviser immédiatement visible. Autre problème de la variable en ce qu'elle affecte tous les print qui se trouve après l'attribution.

ARRAY(0x561c66b32870)

Parfois, lors de la saisie d'un tableau Perl sur l'écran, vous pouvez voir une ligne du type ARRAY(0x561c66b32870). Cela signifie que, sur l'écran s'affiche un tableau et une référence à un tableau. Voici un exemple de code qui affiche similaire à la ligne:

▶ Run
#!/usr/bin/perl

my @arr = (1, 20, 'asdf', 100);
my $arr_ref = \@arr;

print $arr_ref;

Pour afficher un tableau sur l'écran vous devez soit utiliser Data::Dumper, soit разыменовать le lien et au lieu de print $arr_ref; écrire print @{$arr_ref};. Et encore mieux d'écrire print join('', @{$arr_ref});

Thèmes connexes

Autres articles