Câu trả lời:
Chỉ cần sử dụng join()
:
# assuming @array is your array:
print join(", ", @array);
print "current directory contains " . join(', ', <*>) . "\n";
Bạn có thể sử dụng Data::Dump
:
use Data::Dump qw(dump);
my @a = (1, [2, 3], {4 => 5});
dump(@a);
Sản xuất:
"(1, [2, 3], { 4 => 5 })"
Nếu bạn đang viết mã cho kiểu rõ ràng sẽ được hiểu bởi một người mới bắt đầu với Perl, cấu trúc truyền thống này nói lên ý nghĩa của nó, với mức độ rõ ràng và dễ đọc cao:
$string = join ', ', @array;
print "$string\n";
Cấu trúc này được ghi lại trong perldoc -f
join
.
Tuy nhiên, tôi luôn thích cách $,
làm nó đơn giản . Biến đặc biệt $"
dành cho phép nội suy và biến đặc biệt $,
dành cho danh sách. Kết hợp một trong hai với hạn chế phạm vi động ' local
' để tránh có hiệu ứng gợn sóng trong suốt tập lệnh:
use 5.012_002;
use strict;
use warnings;
my @array = qw/ 1 2 3 4 5 /;
{
local $" = ', ';
print "@array\n"; # Interpolation.
}
HOẶC với $ ,:
use feature q(say);
use strict;
use warnings;
my @array = qw/ 1 2 3 4 5 /;
{
local $, = ', ';
say @array; # List
}
Các biến đặc biệt $,
và $"
được ghi lại trong perlvar . Các local
từ khóa, và làm thế nào nó có thể được sử dụng để hạn chế những ảnh hưởng của thay đổi giá trị của một dấu chấm câu biến toàn cầu của có lẽ là tốt nhất mô tả trong perlsub .
Thưởng thức!
Ngoài ra, bạn có thể muốn thử Data :: Dumper . Thí dụ:
use Data::Dumper;
# simple procedural interface
print Dumper($foo, $bar);
pelrdoc perlmodlib
.
Để kiểm tra / gỡ lỗi, hãy kiểm tra Data::Printer
mô-đun. Nó có nghĩa là để làm một điều và một điều duy nhất:
hiển thị các biến Perl và các đối tượng trên màn hình, được định dạng đúng (được con người kiểm tra)
Ví dụ sử dụng:
use Data::Printer;
p @array; # no need to pass references
Đoạn mã trên có thể xuất ra một cái gì đó như thế này (với màu sắc!):
[
[0] "a",
[1] "b",
[2] undef,
[3] "c",
]
libdata-printer-perl
gói.
Sử dụng 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)]);
Tạo ba kiểu đầu ra khác nhau:
$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'
];
Bản đồ cũng có thể được sử dụng, nhưng đôi khi khó đọc khi bạn có nhiều việc đang diễn ra.
map{ print "element $_\n" } @array;
{local $,=', ';print @array}
.