<html><head><meta name="qrichtext" content="1" /></head><body style="font-size:11pt;font-family:Terminus">
<p>On Tuesday 27 October 2009 17:12:23 Denis Evdokimov wrote:</p>
<p>> my @ranges;</p>
<p>> warn;</p>
<p>> my @aaa = my_sub();</p>
<p>> @aaa = my_sub();</p>
<p>> warn;</p>
<p>> push @ranges, @aaa;</p>
<p>> warn;</p>
<p>> push @ranges, my_sub();</p>
<p>> warn;</p>
<p>> sub my_sub</p>
<p>> {</p>
<p>> warn; # Вот тут что-то происходит</p>
<p>> return 'aaa';</p>
<p>> }</p>
<p></p>
<p>Страное что-то.</p>
<p></p>
<p>minimal testcase, если кому интересно</p>
<p></p>
<p>perl5.8.8 -e 'push @a, sub { warn; return "" }->();'</p>
<p>Warning: something's wrong at -e line 1.</p>
<p>Modification of a read-only value attempted at -e line 1.</p>
<p></p>
<p>perl5.8.8 -v</p>
<p></p>
<p>This is perl, v5.8.8 built for i686-linux-thread-multi</p>
<p></p>
<p>интересно, что если вместо push сделать splice, то работает.</p>
<p></p>
<p>-- </p>
<p>Vladimir Perepelitsa aka Mons Anderson</p>
<p><inthrax@gmail.com> / #99779956</p>
</body></html>