为什么我在这个Perl代码中得到"$ rocks ['"附近的"语法错误?

Nan*_* HE 0 arrays perl

当我在Windows XP上的ActivePerl 5.8上运行此程序时,出现语法错误:

#!C:\Perl\bin\perl.exe

use strict; # enabled
use warnings;


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

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

print $rocks[0];
print $rocks[1];
print $rocks[2];
print $rocks[3];
Run Code Online (Sandbox Code Playgroud)

当我@在数组名称之前使用()时rocks,它运行良好.我使用时如何修复上述错误$?谢谢.

my @rocks = qw{Hello World Tom Cat}; # worked well.
Run Code Online (Sandbox Code Playgroud)

sat*_*esh 11

不要用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';
Run Code Online (Sandbox Code Playgroud)