develooper Front page | perl.perl5.porters | Postings from November 2010

Re: [perl #79908] my $x; sub(){$x} makes a constant even if $xchanges

Thread Previous | Thread Next
From:
Dr.Ruud
Date:
November 30, 2010 15:17
Subject:
Re: [perl #79908] my $x; sub(){$x} makes a constant even if $xchanges
Message ID:
20101130213436.8466.qmail@lists-nntp.develooper.com
On 2010-11-29 10:22, Dave Mitchell wrote:
> On Sun, Nov 28, 2010 at 05:16:28PM -0800, Father Chrysostomos wrote:

>> I know this is what constant.pm used to use, but it causes a bug:
>
> What do you think is the bug? It seems to be behaving the way I expect.
>
>> $ perl -MO=Deparse -e' BEGIN{my $x = 5; *foo = sub(){$x}; $x=6} print foo'
>> sub BEGIN {
>>      my $x = 5;
>>      *foo = sub () {
>>          $x;
>>      }
>>      ;
>>      $x = 6;
>> }
>> print 5;

The compiler should patch the constsub at the '$x = 6' line.

-- 
Ruud

Thread Previous | Thread Next


nntp.perl.org: Perl Programming lists via nntp and http.
Comments to Ask Bjørn Hansen at ask@perl.org | Group listing | About