Come visualizzare Perl matrice

Una matrice è una delle strutture di base di dati in linguaggio di programmazione Perl. Nella matrice si possono trovare vari tipi di elementi.

A volte si verifica la necessità di visualizzare una matrice Perl sullo schermo. Ci sono diversi modi per farlo.

L'uso di join()

Spesso il modo migliore per visualizzare i valori di Perl array lo schermo è di utilizzare la funzione join(). Utilizzando la funzione di join() creare una stringa di valori dell'array, e poi portare questa riga sullo schermo. Ecco un esempio:

▶ Run
#!/usr/bin/perl

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

print join(', ', @arr);

Abbiamo identificato una matrice @arr in che posto un paio di numeri e una stringa, e poi con l'aiuto di join(', ', @arr) abbiamo creato una stringa e con l'aiuto di print derivato sullo schermo. Il risultato del lavoro di questo codice: 1, 20, asdf, 100. Questo metodo è buono ciò che è evidente.

L'uso di Data::Dumper

A volte è necessario guardare a una struttura di dati che vengono memorizzati in una variabile. Per questo adatto biblioteca Data::Dumper. Questa libreria va di pari passo con Perl, separatamente a metterlo non è necessario. Con l'aiuto di Data::Dumper è possibile vedere che si trova in una variabile. Ecco un esempio di codice che visualizza le informazioni su un array:

▶ Run
#!/usr/bin/perl

use Data::Dumper;

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

print Dumper \@arr;

L'output del programma:

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

L'uso di print

Ma a parte l'uso join() o Data::Dumper array sullo schermo è possibile portare con print:

▶ Run
#!/usr/bin/perl

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

print @arr;

Il risultato del lavoro programma:

120asdf100

Come si può vedere, print @arr ha stampato tutti gli elementi dell'array insieme. Gli elementi della matrice di output non sono separati. A volte questo è ciò che è necessario, e a volte no.

Ma invece di questo modo di print @arr spesso è meglio scrivere chiaramente print join('', @arr);. Record con join() più comprensibile per i lettori umani.

Variabile $,

C'è la variabile speciale $,, che controlla come printintegra gli elementi di un array in output. Ad esempio, è possibile integrare l'esempio precedente e mettere in questa variabile simbolo ,.

▶ Run
#!/usr/bin/perl

$, = ',';

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

print @arr;

Il programma visualizzerà il testo in cui gli elementi di un array separati da virgole: 1,20,asdf,100.

Variabile $, può contenere non solo un simbolo, ma diverse. Se questa variabile assegnare una stringa $, = ', ';, il prelievo sarà sarà un po ' più chiaro: 1, 20, asdf, 100.

Se in una variabile $, assegnare un simbolo \n, ogni elemento della matrice viene visualizzato su una riga separata:

▶ Run
#!/usr/bin/perl

$, = "\n";

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

print @arr;

Ma più spesso, è meglio non utilizzare una variabile $,, e utilizzare la funzione di join() per esplicito di raccogliere i valori di un array in una stringa. Il problema con una variabile $, sta nel fatto che il valore può essere impostato in un punto del programma, e print che influenza di questa variabile si trova in un altro punto del programma. Quando si utilizza join() il valore di dividere una volta visto. Un altro problema è variabile quello che colpisce tutti print che si trovano dopo l'assegnazione.

ARRAY(0x561c66b32870)

A volte quando si entra Perl array lo schermo si può vedere una stringa del tipo ARRAY(0x561c66b32870). Questo significa che viene visualizzato non è un array, e il riferimento alla matrice. Ecco un esempio di codice che visualizza simile stringa:

▶ Run
#!/usr/bin/perl

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

print $arr_ref;

Per produrre una matrice a schermo necessario utilizzare Data::Dumper, o dereferenziazione e invece print $arr_ref; scrivere print @{$arr_ref};. Meglio ancora scrivere print join('', @{$arr_ref});

Temi correlati

Altri articoli