이 경우 Perl은 원하는 것을 정확하게 수행하지 않습니다. Perl에게 배열을 출력하는 방법을 명시 적으로 알려줄 필요가있다.
이 시도 :
use Data::Dumper;
print Dumper($array[0]);
또는이 :
foreach my $element (@{ $array[0] }) {
print $element, "\n";
}
또는이 :
귀하의 예제 코드가 더 많은 오류 검사를 할 수있는 비트를 다시 작성 여기
print join ' ', @{ $array[0] };
print "\n";
, strict 및 warnings을 켭니다. 이러한 기능이 켜지면 Perl은 더 많은 검사를 수행하고 더 안전한 언어 집합으로 제한 할 것입니다.
#!/usr/bin/perl
use strict;
use warnings;
my @arrays;
my $fn = 'summary.txt';
open FILE, "<$fn" or die "Error opening file ($!)";
while(my $line = <FILE>) {
chomp $line;
my @data = split ' ', $line;
push @arrays, \@data;
}
close FILE or die $!;
# print out comma-separated arrays, one per line
foreach my $array (@arrays) {
print join ",", @$array;
print "\n";
}
@Vlad : 배열 * 배열은 아니지만 ** 배열 참조 ** 배열. 게다가, 당신은 그녀의 라인을 잘못 확률이 매우 높습니다. –
원래의 게시물에 shebang 라인이 쓰여졌습니다. –
여전히 잘못되었습니다. * nix의 전체 경로는 "/"로 시작하므로, Shebang은'#!/usr/bin/perl' – ghostdog74