On Tuesday 27 October 2009 17:12:23 Denis Evdokimov wrote:
> my @ranges;
> warn;
> my @aaa = my_sub();
> @aaa = my_sub();
> warn;
> push @ranges, @aaa;
> warn;
> push @ranges, my_sub();
> warn;
> sub my_sub
> {
>     warn; # Вот тут что-то происходит
>     return 'aaa';
> }

Страное что-то.

minimal testcase, если кому интересно

perl5.8.8 -e 'push @a, sub { warn; return "" }->();'
Warning: something's wrong at -e line 1.
Modification of a read-only value attempted at -e line 1.

perl5.8.8 -v

This is perl, v5.8.8 built for i686-linux-thread-multi

интересно, что если вместо push сделать splice, то работает.

-- 
Vladimir Perepelitsa aka Mons Anderson
<[email protected]> / #99779956
--
Moscow.pm mailing list
[email protected] | http://moscow.pm.org

Ответить