Beefy Boxes and Bandwidth Generously Provided by pair Networks Frank
go ahead... be a heretic
 
PerlMonks  

Re^2: initialise state variable from list context, NOT!

by Random_Walk (Parson)
on Sep 08, 2009 at 14:17 UTC ( #794142=note: print w/ replies, xml ) Need Help??


in reply to Re: initialise state variable from list context, NOT!
in thread initialise state variable from list context, NOT!

Thanks for the quick answer. The reason I thought I may get it to work with some hints for the compiler is that this is allowed

state %record; %record = ( getting => 'url', url => 'http://', match => '', getting => '', alarm => 'no', );

Is an empty hash considered as a safe case? Where is the border of what I can get away with?

Cheers,
R.

Pereant, qui ante nos nostra dixerunt!


Comment on Re^2: initialise state variable from list context, NOT!
Download Code
Re^3: initialise state variable from list context, NOT!
by JavaFan (Canon) on Sep 08, 2009 at 16:21 UTC
    One of border cases is:
    sub foo { (my $foo, state $bar) = (f(), g()); ... } foo; foo; # Should g() be called?
    As for state %record;, that is allowed. It's state in a list assignment that is disallowed. But note that
    state %record; %record = ( ... );
    doesn't give you any benefits over
    my %record = ( ... );
    You will have to write it as
    state %record; %record = ( ... ) unless keys %record;

Log In?
Username:
Password:

What's my password?
Create A New User
Node Status?
node history
Node Type: note [id://794142]
help
Chatterbox?
and the web crawler heard nothing...

How do I use this? | Other CB clients
Other Users?
Others imbibing at the Monastery: (7)
As of 2014-04-17 06:58 GMT
Sections?
Information?
Find Nodes?
Leftovers?
    Voting Booth?

    April first is:







    Results (440 votes), past polls