Hvordan til at vise Perl array

Et array er en af de grundlæggende data strukturer i programmeringssproget Perl. I array-elementer kan være af forskellige typer.

Nogle gange er du nødt til at bringe en række Perl på skærmen. Der er flere måder at gøre det på.

Brug join()

Ofte er den bedste måde at udlede værdien fra Perl array på skærmen er at bruge funktionen join(). Ved hjælp af funktionen join() til at skabe en streng fra array værdier, og derefter for at bringe denne streng til skærmen. Her er et eksempel:

▶ Run
#!/usr/bin/perl

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

print join(', ', @arr);

Vi har identificeret et array @arr , som er placeret et par numre, og en streng, og derefter hjælp join(', ', @arr) har vi skabt en streng og hjælp print bragte det til skærmen. Resultatet af denne kode: 1, 20, asdf, 100. Denne metode er god, fordi hvad er det klart.

Brug Data::Dumper

Nogle gange er det nødvendigt at se på strukturen af de data, der er gemt i en variabel. Passer bibliotek Data::Dumper. Dette bibliotek kommer med Perl, separat, det må ikke sætte. Hjælp Data::Dumper kan du se, hvad der er i variablen. Her er et eksempel kode, der viser oplysninger om den vifte:

▶ Run
#!/usr/bin/perl

use Data::Dumper;

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

print Dumper \@arr;

Outputtet af programmet:

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

Brug print

Men bortset fra hjælp join() eller Data::Dumper array på skærmen træk ved hjælp af print:

▶ Run
#!/usr/bin/perl

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

print @arr;

Resultatet af programmet:

120asdf100

Som du kan se, print @arr udskrevet alle de mange elementer sammen. Elementerne i arrayet i produktionen er ikke adskilt. Nogle gange er det er, hvad du har brug for, og andre gange ikke.

Men i stedet for denne metode print @arr er ofte bedre til at skrive klart print join('', @arr);. Optagelse med join() mere let at læse mand.

Variabel $,

Der er en særlig variabel $,, som styrer printkombinerer elementerne i arrayet i output. For eksempel, kan du Supplere de foregående eksempel og sted i denne variabel symbol ,.

▶ Run
#!/usr/bin/perl

$, = ',';

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

print @arr;

Programmet viser en tekst, hvor elementerne i arrayet, der er adskilt af kommaer: 1,20,asdf,100.

Variabel $, kan indeholde ikke kun en karakter, men flere. Hvis denne variabel for at tildele en streng $, = ', ';, så produktionen vil være lidt mere beskrivende: 1, 20, asdf, 100.

Hvis variablen $, for at tildele symboler for at \n, så hvert element i arrayet, vil blive vist på en separat linje:

▶ Run
#!/usr/bin/perl

$, = "\n";

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

print @arr;

Men oftest er det bedre ikke at bruge en variabel $,, og brug funktionen join() for eksplicit at indsamle værdier fra et array til en streng. Problemet med variabel $, er der en værdi, der kan henføres på ét sted i programmet og print , som er berørt af denne variabel er i en helt andet sted i programmet. Når du bruger join() sæt til at opdele er umiddelbart indlysende. Et andet problem variabel det faktum, at det påvirker alle print , som er placeret efter opgave.

ARRAY(0x561c66b32870)

Nogle gange, når du indtaster et Perl-array til den skærm, du kan se den linje ARRAY(0x561c66b32870). Dette betyder, at skærmen vil vise i stedet for en array henvisning til serien. Her er et eksempel på kode, der viser en streng som denne:

▶ Run
#!/usr/bin/perl

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

print $arr_ref;

For at vise array på skærmen eller bruge Data::Dumper, eller til at dereferere linket, og i stedet print $arr_ref; skriv print @{$arr_ref};. Endnu bedre, så skriv print join('', @{$arr_ref});

Relaterede emner

Andre artikler