当我在Windows XP的Windows5.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];当我在数组rocks的名称之前使用(@)时,它工作得很好。当我使用$时,如何修复上面的错误?谢谢。
my @rocks = qw{Hello World Tom Cat}; # worked well.发布于 2010-01-05 21:16:05
不要一次又一次地使用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';发布于 2010-01-05 22:26:41
使用push运算符:
my @rocks;
push @rocks, qw/ Hello World /;
push @rocks, "Tom";
push @rocks, "Cat";避免显式和冗余的数组索引有助于代码的未来保护。例如,如果你发现你需要改变你的初始化,你不能搞砸一个不存在的数组索引。
发布于 2010-01-05 21:13:12
我认为您需要声明my @rocks,然后在引用$rocks[xxx]时不再使用my。
如果您不知道其中有多少元素,可以使用push将新元素添加到(初始大小为0)数组中。
https://stackoverflow.com/questions/2006173
复制相似问题