Albo, jeśli chcesz być naprawdę brudne: {local $,=', ';print @array}.
musiKk
10
Jest więcej niż jeden sposób, aby to zrobić… ale jest to sposób, który nie sprawia, że osoba utrzymująca kod po tym, jak Cię nienawidzisz. Tak, perldoc perlvar istnieje, ale wolałbym rzucić okiem na „join”, „@array” niż uderzać perlvar w co drugą linię, aby dowiedzieć się, co robią wszystkie ezoteryczne zmienne.
Oesor,
@Oesor: Dlatego nazwałem to brudnym. Ale cóż, patrząc na inne odpowiedzi, nie jestem najgorszym przestępcą. :)
musiKk
@musiKK Podoba mi się! To coś, czego bym użył, gdybym chciał zagadać moich współpracowników. :)
Alex
3
Działało to naprawdę dobrze przy drukowaniu zawartości katalogu. print "current directory contains " . join(', ', <*>) . "\n";
W systemie Ubuntu / Mint zainstaluj pakiet libdata-dump-perl.
MUY Belgium
2
Najlepsza odpowiedź tutaj! Działa również z tablicami wielowymiarowymi. Najbardziej elastyczny.
Léo Léopold Hertz 준영
18
Jeśli programujesz pod kątem przejrzystości, która byłaby zrozumiała dla kogoś, kto dopiero zaczyna z Perlem, tradycyjny ten konstrukt mówi, co to znaczy, z wysokim stopniem jasności i czytelności:
$string = join ', ',@array;print"$string\n";
Ta konstrukcja jest udokumentowana w perldoc -fjoin.
Jednak zawsze podobało mi się, jak proste $,to robi. Zmienna specjalna $"służy do interpolacji, a zmienna specjalna $,do list. Połącz jedną z nich z dynamicznym ograniczaniem zakresu ' local', aby uniknąć efektów falowania w całym skrypcie:
use feature q(say);use strict;use warnings;my@array= qw/12345/;{local $,=', ';
say @array;# List}
Zmienne specjalne $,i $"są udokumentowane w perlvar . localSłów kluczowych, i jak to może być wykorzystane do ograniczenia skutków zmiany wartości zmiennej globalnej interpunkcyjny jest prawdopodobnie najlepiej opisany w perlsub .
Data :: Dumper to standardowy moduł instalowany wraz z Perlem. Aby uzyskać listę wszystkich standardowych pragmatyków i modułów, zobacz pelrdoc perlmodlib.
shawnhcorey
7
W celu sprawdzenia / debugowania sprawdź Data::Printermoduł. Ma na celu zrobienie jednej rzeczy i tylko jednej rzeczy:
wyświetlać zmienne i obiekty Perla na ekranie, odpowiednio sformatowane (do sprawdzenia przez człowieka)
Przykładowe użycie:
useData::Printer;
p @array;# no need to pass references
Powyższy kod może wyświetlić coś takiego (z kolorami!):
{local $,=', ';print @array}
.print "current directory contains " . join(', ', <*>) . "\n";
Możesz użyć
Data::Dump
:Produkuje:
źródło
Jeśli programujesz pod kątem przejrzystości, która byłaby zrozumiała dla kogoś, kto dopiero zaczyna z Perlem, tradycyjny ten konstrukt mówi, co to znaczy, z wysokim stopniem jasności i czytelności:
Ta konstrukcja jest udokumentowana w
perldoc -f
join
.Jednak zawsze podobało mi się, jak proste
$,
to robi. Zmienna specjalna$"
służy do interpolacji, a zmienna specjalna$,
do list. Połącz jedną z nich z dynamicznym ograniczaniem zakresu 'local
', aby uniknąć efektów falowania w całym skrypcie:LUB z $ ,:
Zmienne specjalne
$,
i$"
są udokumentowane w perlvar .local
Słów kluczowych, i jak to może być wykorzystane do ograniczenia skutków zmiany wartości zmiennej globalnej interpunkcyjny jest prawdopodobnie najlepiej opisany w perlsub .Cieszyć się!
źródło
Możesz także wypróbować Data :: Dumper . Przykład:
źródło
pelrdoc perlmodlib
.W celu sprawdzenia / debugowania sprawdź
Data::Printer
moduł. Ma na celu zrobienie jednej rzeczy i tylko jednej rzeczy:Przykładowe użycie:
Powyższy kod może wyświetlić coś takiego (z kolorami!):
źródło
libdata-printer-perl
pakiet.Możesz to po prostu
print
.Otrzymasz:
źródło
use warnings;
i zobaczyć, co mówi.źródło
Używając
Data::Dumper
:Generuje trzy różne style wyjściowe:
źródło
To może nie być to, czego szukasz, ale oto coś, co zrobiłem dla zadania:
źródło
Mapa może być również używana, ale czasami jest trudna do odczytania, gdy dzieje się dużo rzeczy.
źródło
Jednak nie próbowałem biec poniżej. Myślę, że to trudny sposób.
źródło