Wie auf dem Bildschirm angezeigt Perl-array

Ein array ist eine der grundlegenden Datenstrukturen in der Programmiersprache Perl. In einem array können Elemente verschiedener Typen.

Manchmal ergibt sich die Notwendigkeit ableiten, Perl array auf dem Bildschirm. Es gibt mehrere Möglichkeiten, dies zu tun.

Verwendung join()

Meistens der beste Weg, um den Wert von Perl array auf dem Bildschirm ist die Verwendung der Funktion join(). Mit Hilfe der Funktion join() erstellen einer Zeichenfolge aus Werten des Arrays, und dann bringen Sie diese Zeile auf dem Bildschirm. Hier ist ein Beispiel:

▶ Run
#!/usr/bin/perl

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

print join(', ', @arr);

Wir kennzeichneten ein array @arr in der haben ein paar zahlen und eine Zeile, und dann mit Hilfe join(', ', @arr) haben wir eine Zeile und mit Hilfe print führten es auf den Bildschirm. Das Ergebnis dieses Codes: 1, 20, asdf, 100. Diese Methode ist gut dass er ein deutliches.

Verwendung Data::Dumper

Manchmal ist es notwendig, bei der die Struktur der Daten, die in einer Variablen gespeichert. Dafür eignet sich die Bibliothek Data::Dumper. Diese Bibliothek geht zusammen mit Perl, separat setzen ist nicht notwendig. Mit Hilfe Data::Dumper können Sie sehen, was in der Variablen. Das folgende Beispiel zeigt Informationen über ein array:

▶ Run
#!/usr/bin/perl

use Data::Dumper;

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

print Dumper \@arr;

Ausgabe des Programms:

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

Verwendung print

Aber abgesehen von der Verwendung von join() oder Data::Dumper - array auf dem Bildschirm können Sie aktiviert mit dem print:

▶ Run
#!/usr/bin/perl

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

print @arr;

Das Ergebnis des Programms:

120asdf100

Wie Sie sehen können, print @arr druckte alle Elemente des Arrays zusammen. Die Elemente des Arrays in der Ausgabe nicht getrennt. Manchmal ist es aber manchmal nicht.

Aber anstelle dieses Verfahrens print @arr oft besser schreiben explizit print join('', @arr);. Aufnahme mit join() mehr als verständlich für den Menschen lesbar.

Variable $,

Es gibt eine spezielle Variable $,, die steuert, wie printvereint die Elemente des Arrays bei der Ausgabe. Beispielsweise kann durch das Vorherige Beispiel und setzen in diese Variable Symbol ,.

▶ Run
#!/usr/bin/perl

$, = ',';

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

print @arr;

Das Programm zeigt den Text in dem die Elemente des Arrays durch Kommas getrennt: 1,20,asdf,100.

Variable $, darf nur ein Zeichen, sondern mehrere. Wenn diese Variable weisen Sie die Zeichenfolge $, = ', ';, ist die Ausgabe ein wenig anschaulicher: 1, 20, asdf, 100.

Wenn in der Variable $, Symbol zuweisen \n, das jedes Element des Arrays wird angezeigt in einer separaten Zeile:

▶ Run
#!/usr/bin/perl

$, = "\n";

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

print @arr;

Aber meistens ist es besser nicht verwenden eine Variable $,und verwenden die Funktion join() um explizit zu sammeln Werte aus einem array in einen String. Das Problem mit der Variablen $, besteht darin dass Wert zugewiesen werden kann an einer Stelle des Programms, und print auf die wirkt sich diese Variable befindet sich an einer ganz anderen Stelle des Programms. Bei der Verwendung join() Wert aufgeteilt werden sofort sichtbar. Ein weiteres Problem der Variablen in der Tatsache, dass es wirkt sich auf alle print sind die nach der Zuweisung.

ARRAY(0x561c66b32870)

Manchmal bei der Eingabe von Perl array auf dem Bildschirm sehen Sie die Art ARRAY(0x561c66b32870). Dies bedeutet, dass auf dem Bildschirm erscheint nicht das array, sondern die Referenz auf ein array. Hier ist ein Beispiel des Codes, die zeigt eine ähnliche Zeile:

▶ Run
#!/usr/bin/perl

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

print $arr_ref;

Um das array auf dem Bildschirm werden entweder die Data::Dumper, entweder den Link werde Dereferenzierung der Zeiger und anstelle print $arr_ref; schreiben print @{$arr_ref};. Und noch besser schreiben print join('', @{$arr_ref});

Verwandte Themen

Andere Artikel