Damian Conway writes:

on the second thought : its quite strange ( though cute ) that 
currently the only way to make lexical persistent variable is based on
garbage collector. it is referenced -- hence it is kept. 

may be it have to be more explicit like that

sub counter(){ 
    daemon $s;        #( or : my $s is daemon; ) 
    INIT{ $s = 0 } ;  # ??? 
    $s++;
}

or 

sub counter() 
    will have { BigInt $s } # "have" actually populate attributes of 
                            # the associated "daemon" object 
    will init { $s = 0    } # sort of constructor for the daemon 
{ 
        $s++;
}

I think that something like 

daemon $s ; 

makes it clear that $s keeps its value somwere in the "shadow" .


arcadi 

Reply via email to