Попытка изменения значения только для чтения - PullRequest
5 голосов
/ 06 апреля 2011

Я Perl Noob, я погуглил ошибку и не могу найти что-нибудь подходящее.

#!/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 Ответ

14 голосов
/ 06 апреля 2011

$0 и $1 - специальные переменные в Perl (см. perldoc perlvar ).$1 - переменная только для чтения.

Кроме того, вы должны включить предупреждений , чтобы увидеть еще много проблем с вашим кодом.

Я предполагаю, что вы хотите что-то вродеthis:

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 содержит дополнительную информацию о сообщении об ошибке: «Попытка изменения значения только для чтения».

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...