[Moscow.pm] Modification of a read-only value

Андрей П. Ковбович akovbovich на gmail.com
Вт Фев 16 12:45:04 PST 2010


Так вот оно и странно, что код отрабатывает и пишет 423, хотя должен
по идее писать Modification of a read-only value...

Что интересно, вот такой вариант уже не прокатывает, хотя делает то же самое:

perl -we 'use strict; my @a = (\1, \2, \3); ${$a[0]} = 4; print map { $$_ } @a;'
Modification of a read-only value attempted at -e line 1.


16 февраля 2010 г. 22:46 пользователь Andrei
<andrei.protasovitski на gmail.com> написал:
> 16 февраля 2010 г. 19:20 пользователь Андрей П. Ковбович
> <akovbovich на gmail.com> написал:
>>
>> Linux (perl 5.10.1)
>> $ perl -we 'my @a = \(1, 2, 3); ${$a[0]} = 4; print map { $$_ } @a'
>> Modification of a read-only value attempted at -e line 1.
>>
>> Windows7 (active perl 5.10.1)
>> > perl -we "my @a = \(1, 2, 3); ${$a[0]} = 4; print map { $$_ } @a"
>> 423
>>
>> В чем прикол? Perl по идее должен был одинаковый результат выдать, а
>> получается, что под виндой можно сказать 1 = 2 и перл поверит.
>
>
> Ubuntu 9.10:
>
> $ perl -e "print $];"
> 5.010000
> $ perl -we 'use strict; my @a = \(1, 2, 3); ${$a[0]} = 4; print map { $$_ }
> @a;'
> 423
>
> Debian Squeeze:
>
> $ perl -e "print $];"
> 5.010001
> $ perl -we 'use strict; my @a = \(1, 2, 3); ${$a[0]} =  map { $$_ } @a;'
> 423
>
> Дистрибутив?
>
> --
> Andrei Protasovitski
> < andrei[dot]protasovitski[at]gmail[dot]com >
> Diemen, Netherlands
>
> --
> Moscow.pm mailing list
> moscow-pm на pm.org | http://moscow.pm.org
>
>


Подробная информация о списке рассылки Moscow-pm