Jak wyświetlić Perl tablica

Tablica — jest to jedna z podstawowych struktur danych w języku programowania Perl. W tablicy znajdują się elementy różnych typów.

Czasami występuje konieczność wycofania tablica Perl na ekran. Istnieje kilka sposobów, aby to zrobić.

Korzystanie z join()

Najczęściej jest najlepszym sposobem, aby wyświetlić wartości z Perl tablicy na ekran — to użyć funkcji join(). Za pomocą funkcji join() utworzyć ciąg z wartości tablicy, a potem wyprowadzić tę linię na ekranie. Oto przykład:

▶ Run
#!/usr/bin/perl

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

print join(', ', @arr);

Ustaliliśmy tablica @arr w który złożył kilka liczb i wiersz, a dalej z pomocą join(', ', @arr) stworzyliśmy linię i z pomocą print wyprowadzili ją na ekran. Wynik działania tego kodu: 1, 20, asdf, 100. Ten sposób jest dobry w tym co jest oczywiste.

Korzystanie z Data::Dumper

Czasem trzeba spojrzeć na strukturę danych, które są przechowywane w zmiennej. Do tego celu nadaje biblioteka Data::Dumper. Biblioteka ta idzie w parze z Perl, osobno jej stawiać nie trzeba. Z pomocą Data::Dumper można zobaczyć, co znajduje się w zmiennej. Oto przykład kodu, który wyświetla informacje o tablica:

▶ Run
#!/usr/bin/perl

use Data::Dumper;

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

print Dumper \@arr;

Wyjście z programu:

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

Korzystanie z print

Ale oprócz zastosowań join() lub Data::Dumper tablicę na ekran można wyprowadzić za pomocą print:

▶ Run
#!/usr/bin/perl

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

print @arr;

Wynik działania programu:

120asdf100

Jak widać, print @arr wydrukował wszystkie elementy tablicy płynnie. Elementy tablicy na wyjściu nie są podzielone. Czasami jest to coś, co trzeba, a czasami nie.

Ale zamiast tego sposobu print @arr często lepiej pisać wyraźnie print join('', @arr);. Nagrywanie z join() bardziej zrozumiałe dla odczytu człowiekiem.

Zmienna $,

Istnieje specjalna zmienna $,, która zarządza tym jak printłączy elementy tablicy przy wyjściu. Na przykład, można uzupełnić poprzedni przykład i umieścić w tej zmiennej symbol ,.

▶ Run
#!/usr/bin/perl

$, = ',';

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

print @arr;

Program wyświetla na ekranie tekst w którym elementy tablicy są oddzielone przecinkami: 1,20,asdf,100.

Zmienna $, może zawierać tylko jeden znak, ale i kilka. Jeśli w tę zmienną przypisać ciąg $, = ', ';, wniosek będzie nieco bardziej wizualny: 1, 20, asdf, 100.

Jeśli w zmiennej $, przypisać symbol \n, to każdy element tablicy pojawi w osobnym wierszu:

▶ Run
#!/usr/bin/perl

$, = "\n";

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

print @arr;

Ale najczęściej nie lepiej użyć zmiennej $,, a użyć funkcji join() aby wyraźnie zbierać wartości z tablicy w ciąg. Problem ze zmienną $, polega na tym, że wartość może być ustawiona w jednym miejscu programu, a print na który wpływa zmienna ta jest zupełnie w innym miejscu programu. Podczas korzystania z join() wartość podzielić od razu widać. Inny problem zmiennej w tym, że ona ma wpływ na wszystkie print , które znajdują się po nazwaniu.

ARRAY(0x561c66b32870)

Czasami podczas pisania Perl tablicy na ekran można zobaczyć ciąg rodzaju ARRAY(0x561c66b32870). To oznacza, że na ekranie pojawia się nie tablica, a odwołanie do tablicy. Oto przykład kodu, który wyświetli się ekran podobny wiersz:

▶ Run
#!/usr/bin/perl

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

print $arr_ref;

Aby wyświetlić tablicę na ekran trzeba albo użyć Data::Dumper, albo разыменовать link i zamiast print $arr_ref; napisz print @{$arr_ref};. A jeszcze lepiej napisać print join('', @{$arr_ref});

Tematy pokrewne

Inne artykuły