각 요소 사이에 쉼표가있는 Perl 배열을 쉽게 인쇄 할 수있는 방법이 있습니까?
for 루프를 작성하는 것은 꽤 쉽지만 우아하지는 않습니다.
답변:
그냥 사용하십시오 join()
:
# assuming @array is your array:
print join(", ", @array);
print "current directory contains " . join(', ', <*>) . "\n";
다음을 사용할 수 있습니다 Data::Dump
.
use Data::Dump qw(dump);
my @a = (1, [2, 3], {4 => 5});
dump(@a);
생성 :
"(1, [2, 3], { 4 => 5 })"
Perl을 막 시작한 사람이 이해할 수있는 종류의 명확성을 위해 코딩하는 경우, 전통적인이 구조는 높은 수준의 명확성과 가독성으로 그것이 의미하는 바를 말합니다.
$string = join ', ', @array;
print "$string\n";
이 구성은 perldoc -f
join
.
그러나 나는 항상 $,
그것을 얼마나 간단 하게 만드는지 좋아 했습니다. 특수 변수 $"
는 보간 용이고 특수 변수 $,
는 목록 용입니다. 둘 중 하나를 동적 범위 제한 ' local
' 과 결합 하여 스크립트 전체에 파급 효과가 발생하지 않도록합니다.
use 5.012_002;
use strict;
use warnings;
my @array = qw/ 1 2 3 4 5 /;
{
local $" = ', ';
print "@array\n"; # Interpolation.
}
또는 $ ,:
use feature q(say);
use strict;
use warnings;
my @array = qw/ 1 2 3 4 5 /;
{
local $, = ', ';
say @array; # List
}
특수 변수 $,
및 perlvar에$"
문서화되어 있습니다. 키워드 및이 글로벌 문장 변수의 값을 변경의 효과를 제한하는 데 사용할 수있는 방법은 아마도 가장에 설명되어 perlsub .local
즐겨!
또한 Data :: Dumper 를 사용해 볼 수도 있습니다 . 예:
use Data::Dumper;
# simple procedural interface
print Dumper($foo, $bar);
pelrdoc perlmodlib
.
검사 / 디버깅을 위해 Data::Printer
모듈을 확인하십시오 . 한 가지 일만 수행한다는 의미입니다.
화면에 Perl 변수와 개체를 적절하게 형식화하여 표시 (사람이 검사)
사용 예 :
use Data::Printer;
p @array; # no need to pass references
위의 코드는 다음과 같이 출력 할 수 있습니다 (색상 포함!) :
[
[0] "a",
[1] "b",
[2] undef,
[3] "c",
]
libdata-printer-perl
패키지를 설치할 수 있습니다 .
사용 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)]);
세 가지 출력 스타일을 생성합니다.
$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'
];
지도도 사용할 수 있지만 많은 일이 진행될 때 읽기가 어려울 때가 있습니다.
map{ print "element $_\n" } @array;
{local $,=', ';print @array}
.