카테고리 없음

[펄] 이 Perl 코드에서 " '$ rocks ['근처에 구문 오류"가 발생하는 이유는 무엇입니까?

행복을전해요 2021. 1. 12. 22:43

, 등을 선언 my하기 위해 반복해서 사용하지 마십시오 . 배열을 한 번 선언하고 ( ) 사용하십시오.$rocks[0]$rocks[1]@rocks

수정 된 코드는 다음과 같습니다.

use strict;
use warnings; 
my @rocks; ## declare the array here

($rocks[0], $rocks[1]) = qw/Hello World/; 
$rocks[2] = 'Tom'; 
$rocks[3] = 'Cat';
-------------------

push연산자 사용 :

my @rocks;

push @rocks, qw/ Hello World /;
push @rocks, "Tom";
push @rocks, "Cat";

명시적이고 중복 된 배열 인덱스를 피하면 코드의 미래 보장에 도움이됩니다. 예를 들어 초기화를 변경해야하는 경우 거기에없는 배열 인덱스를 망칠 수 없습니다.

-------------------

참조 할 때 선언 my @rocks하고 my더 이상 사용 하지 않아야 한다고 생각합니다 $rocks[xxx].

거기에 몇 개의 요소가 있을지 모르는 경우를 사용 push하여 (처음에는 0 크기) 배열에 새 요소를 추가 할 수 있습니다 .

-------------------

@rocks여러 번 재 선언 하고 있습니다. 대신 다음과 같이 시도하십시오.

my @rocks;

$rocks[0] = 'Tom';
$rocks[1] = 'Cat';

기타

-------------------

먼저 맨 위에 배열을 다음과 같이 선언 할 수 있습니다.

my @rocks;

그리고 다른 모든 곳에서 내 선언을 제거하십시오.

코드는 다음과 같습니다.

#!C:\Perl\bin\perl.exe
# ActivePerl 5.8 based
use strict; # enabled
use warnings;

my @rocks;

($rocks[0], $rocks[1]) = qw/Hello World/; # Syntax error near '$rocks['

$rocks[2] = 'Tom'; # Syntax error near '$rocks['
$rocks[3] = 'Cat'; # Syntax error near '$rocks['

print $rocks[0];
print $rocks[1];
print $rocks[2];
print $rocks[3];
-------------------

그냥 똑바로 넣지 @rocks그래?

use strict;
use warnings;

my @rocks = qw'Hello World';

my $rocks[2] = 'Tom';
my $rocks[3] = 'Cat';

print $rocks[0];
print $rocks[1];
print $rocks[2];
print $rocks[3];


출처
https://stackoverflow.com/questions/2006173