Como apresentar o Perl de uma matriz

A matriz é uma das estruturas de base de dados em linguagem de programação Perl. Na matriz podem elementos de diferentes tipos.

Às vezes ocorre a necessidade de retirar a matriz de Perl em tela. Há várias maneiras de fazer isso.

O uso de join()

Mais frequentemente do que o melhor método para derivar os valores do Perl a matriz na tela é usar a função join(). Usando a função join() a criar uma cadeia de valores de uma matriz, e então retirar esta linha na tela. Aqui está um exemplo:

▶ Run
#!/usr/bin/perl

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

print join(', ', @arr);

Nós definimos uma matriz de @arr em que colocou alguns números e linha e mais com a ajuda de join(', ', @arr) criamos a linha e com o print derivaram-lo na tela. O resultado desse código: 1, 20, asdf, 100. Este método é bom na medida em que ele explícito.

O uso de Data::Dumper

Às vezes, é necessário olhar para a estrutura de dados, que são armazenados em uma variável. Para isso, é adequado uma biblioteca Data::Dumper. Esta biblioteca vai junto com o Perl, separado de seu apostar, você não. Com a ajuda de Data::Dumper você pode ver o que está dentro de uma variável. Aqui está um exemplo de código que exibe informações sobre a matriz:

▶ Run
#!/usr/bin/perl

use Data::Dumper;

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

print Dumper \@arr;

A saída do programa:

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

O uso de print

Mas, além da utilização de join() ou Data::Dumper a matriz na tela pode ser retirar com a ajuda de print:

▶ Run
#!/usr/bin/perl

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

print @arr;

O resultado do programa:

120asdf100

Como você pode ver, print @arr imprimiu a todos os elementos da matriz juntos. Os elementos da matriz na saída, não são separados. Às vezes é algo que você precisa, e às vezes não.

Mas, em vez disso, da forma print @arr muitas vezes, é melhor escrever explicitamente print join('', @arr);. Gravação com join() mais compreensível para leitores humanos.

A variável $,

Existe uma variável especial $,, que controla o modo como printintegra os elementos da matriz quando a saída. Por exemplo, pode completar-se com o exemplo anterior e colocar esta variável é um símbolo de ,.

▶ Run
#!/usr/bin/perl

$, = ',';

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

print @arr;

O programa exibirá uma mensagem de texto no qual os elementos de um array separados por vírgulas: 1,20,asdf,100.

A variável $, pode conter não só um símbolo, mas vários. Se esta variável atribuir uma seqüência $, = ', ';, então a saída será um pouco mais claro: 1, 20, asdf, 100.

Se a variável de $, atribuir um símbolo \n, cada elemento da matriz será apresentada a em uma linha separada:

▶ Run
#!/usr/bin/perl

$, = "\n";

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

print @arr;

Mas, mais frequentemente, melhor não usar a variável de $,, e usar o recurso de join() para explicitamente coletar os valores de uma matriz em uma linha. O problema com a variável $, é que o valor pode ser definido no mesmo local do programa, e print afetado por esta variável está completamente em outro lugar do programa. Quando você usa o join() valor dividir imediatamente visível. Outro problema é a variável é que ela afeta todos os print que estão localizados após a atribuição.

ARRAY(0x561c66b32870)

Às vezes, quando você digita o Perl da matriz na tela você pode ver a barra tipos de ARRAY(0x561c66b32870). Isso significa que será exibido um não array, e a referência para a matriz. Aqui está um exemplo de código que irá mostrar uma tela semelhante à linha:

▶ Run
#!/usr/bin/perl

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

print $arr_ref;

Para apresentar a matriz na tela, você deve usar Data::Dumper, ou anular a referência e, em vez de print $arr_ref; escrever print @{$arr_ref};. E melhor ainda escrever print join('', @{$arr_ref});

Temas relacionados

Outros artigos