尝试修改只读值

时间:2011-04-06 15:59:53

标签: perl

我是一个perl noob,我用Google搜索了错误,找不到相关内容。

#!/usr/bin/perl

use strict;

my %cc;

\my @cc => (3,4,5,6,6,7,7);
$cc{key} = \@cc;

$0 =  $cc{key}[0] * 2;
$1 =  $cc{key}[1] * 1;  #error here

my $total = $0 + $1;

print "$1";
print "$total";

第11行是我的错误......

1 个答案:

答案 0 :(得分:14)

$0$1是Perl中的特殊变量(请参阅perldoc perlvar)。 $1是一个只读变量。

此外,您应该启用warnings以查看代码中的更多问题。

我的猜测是你想要这样的东西:

use strict;
use warnings;

my @cc = (3,4,5,6,6,7,7);
my %cc;
$cc{key} = \@cc;

my $k0 = $cc{key}[0] * 2;
my $k1 = $cc{key}[1] * 1;
my $total = $k0 + $k1;

print "$k1\n";
print "$total\n";

perldoc perldiag提供了有关错误消息的更多信息:“尝试修改只读值。”