Antworten:
Verwenden Sie einfach join()
:
# assuming @array is your array:
print join(", ", @array);
print "current directory contains " . join(', ', <*>) . "\n";
Sie können verwenden Data::Dump
:
use Data::Dump qw(dump);
my @a = (1, [2, 3], {4 => 5});
dump(@a);
Produziert:
"(1, [2, 3], { 4 => 5 })"
Wenn Sie für die Art von Klarheit programmieren, die von jemandem verstanden wird, der gerade erst mit Perl anfängt, sagt das traditionelle Konstrukt, was es bedeutet, mit einem hohen Maß an Klarheit und Lesbarkeit:
$string = join ', ', @array;
print "$string\n";
Dieses Konstrukt ist in dokumentiert perldoc -f
join
.
Mir hat jedoch immer gefallen, wie einfach es $,
macht. Die spezielle Variable $"
dient zur Interpolation und die spezielle Variable $,
zur Liste. Kombinieren Sie eine der beiden Optionen mit dynamischen Bereichsbeschränkungen local
, um Welligkeitseffekte im gesamten Skript zu vermeiden:
use 5.012_002;
use strict;
use warnings;
my @array = qw/ 1 2 3 4 5 /;
{
local $" = ', ';
print "@array\n"; # Interpolation.
}
ODER mit $,:
use feature q(say);
use strict;
use warnings;
my @array = qw/ 1 2 3 4 5 /;
{
local $, = ', ';
say @array; # List
}
Die speziellen Variablen $,
und $"
sind in Perlvar dokumentiert . Das local
Schlüsselwort und wie es verwendet werden kann, um die Auswirkungen der Änderung des Werts einer globalen Interpunktionsvariablen einzuschränken, wird wahrscheinlich am besten in perlsub beschrieben .
Genießen!
Vielleicht möchten Sie auch Data :: Dumper ausprobieren . Beispiel:
use Data::Dumper;
# simple procedural interface
print Dumper($foo, $bar);
pelrdoc perlmodlib
.
Überprüfen Sie das Data::Printer
Modul auf Inspektion / Debugging . Es soll nur eins und eins tun:
Anzeige von Perl-Variablen und -Objekten auf dem Bildschirm, ordnungsgemäß formatiert (von einem Menschen zu überprüfen)
Anwendungsbeispiel:
use Data::Printer;
p @array; # no need to pass references
Der obige Code könnte Folgendes ausgeben (mit Farben!):
[
[0] "a",
[1] "b",
[2] undef,
[3] "c",
]
libdata-printer-perl
Paket installieren .
Verwenden von Data::Dumper
:
use strict;
use Data::Dumper;
my $GRANTstr = 'SELECT, INSERT, UPDATE, DELETE, LOCK TABLES, EXECUTE, TRIGGER';
$GRANTstr =~ s/, /,/g;
my @GRANTs = split /,/ , $GRANTstr;
print Dumper(@GRANTs) . "===\n\n";
print Dumper(\@GRANTs) . "===\n\n";
print Data::Dumper->Dump([\@GRANTs], [qw(GRANTs)]);
Generiert drei verschiedene Ausgabestile:
$VAR1 = 'SELECT';
$VAR2 = 'INSERT';
$VAR3 = 'UPDATE';
$VAR4 = 'DELETE';
$VAR5 = 'LOCK TABLES';
$VAR6 = 'EXECUTE';
$VAR7 = 'TRIGGER';
===
$VAR1 = [
'SELECT',
'INSERT',
'UPDATE',
'DELETE',
'LOCK TABLES',
'EXECUTE',
'TRIGGER'
];
===
$GRANTs = [
'SELECT',
'INSERT',
'UPDATE',
'DELETE',
'LOCK TABLES',
'EXECUTE',
'TRIGGER'
];
Die Karte kann auch verwendet werden, ist aber manchmal schwer zu lesen, wenn viele Dinge vor sich gehen.
map{ print "element $_\n" } @array;
{local $,=', ';print @array}
.