Cómo mostrar en pantalla la matriz de Perl

Una matriz es una de las estructuras de datos subyacentes en el lenguaje de programación Perl. En la matriz se pueden encontrar elementos de diferentes tipos.

A veces surge la necesidad de mostrar una matriz de Perl en la pantalla. Hay varias maneras de hacerlo.

El uso de join()

Más a menudo la mejor manera para ver los valores de Perl la matriz en la pantalla es utilizar la función de join(). Mediante la función de join() a crear una cadena de valores de la matriz, y luego mostrar esta línea en la pantalla. He aquí un ejemplo:

▶ Run
#!/usr/bin/perl

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

print join(', ', @arr);

Hemos definido una matriz de @arr en el que se han colocado algunos de los números y la cadena, y luego con la ayuda de join(', ', @arr) hemos establecido una cadena y con la ayuda de print han sacado a la pantalla. El resultado del trabajo de este código: 1, 20, asdf, 100. Este método es bueno que él explícito.

El uso de Data::Dumper

A veces es necesario mostrar a la estructura de datos que se almacena en una variable. Para ello, es adecuado biblioteca Data::Dumper. Esta biblioteca va junto con Perl, por separado de ella no es necesario poner la. Con la ayuda de Data::Dumper se puede ver que se encuentra en la variable. He aquí un ejemplo de código que muestra información acerca de la matriz:

▶ Run
#!/usr/bin/perl

use Data::Dumper;

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

print Dumper \@arr;

La salida del programa:

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

El uso de print

Pero, además del uso de join() o Data::Dumper la matriz en la pantalla se puede retirar con la ayuda de print:

▶ Run
#!/usr/bin/perl

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

print @arr;

El resultado del trabajo del programa:

120asdf100

Como se puede ver, print @arr imprimió todos los elementos de la matriz se quedan pegadas. Los elementos de la matriz en la salida no se dividen. A veces esto es lo que se necesita, y a veces no.

Pero en lugar de ello, la moda print @arr a menudo la mejor manera de escribir explícitamente print join('', @arr);. Grabación con join() más comprensible para el lector de la persona.

La variable $,

Hay una variable especial $,, que controla como printune los elementos de la matriz en la salida. Por ejemplo, se puede complementar con el ejemplo anterior y colocar en esta variable el símbolo de ,.

▶ Run
#!/usr/bin/perl

$, = ',';

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

print @arr;

El programa mostrará un texto en el que los elementos de la matriz, separados por comas: 1,20,asdf,100.

La variable $, puede contener no sólo un símbolo, sino varias. Si en esta variable asignar la cadena de $, = ', ';, la salida será un poco más claro: 1, 20, asdf, 100.

Si en la variable $, asignar un carácter \n, cada elemento de la matriz se le en una línea:

▶ Run
#!/usr/bin/perl

$, = "\n";

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

print @arr;

Pero más a menudo es mejor no utilizar la variable de $,, y utilizar la función de join() para recoger explícitamente los valores de la matriz en una cadena. El problema con la variable $, radica en el hecho de que el valor puede establecerse en un lugar del programa, y print en que afecta esta variable se encuentra completamente en otro lugar del programa. Cuando se utiliza join() el valor de dividir visible inmediatamente. Otro problema de la variable en lo que afecta a todos los print que se encuentran después de apropiación indebida.

ARRAY(0x561c66b32870)

A veces, cuando se escribe el Perl de la matriz en la pantalla se puede ver una línea similar a ARRAY(0x561c66b32870). Esto significa que en la pantalla se muestra de una matriz, y el vínculo de la matriz. He aquí un ejemplo de código que muestra una pantalla similar a la línea:

▶ Run
#!/usr/bin/perl

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

print $arr_ref;

Para retirar la matriz en la pantalla o utilizar Data::Dumper, o eliminar el enlace y en lugar de print $arr_ref; escribir print @{$arr_ref};. O mejor aún, escribir print join('', @{$arr_ref});

Temas relacionados

Otros articulos