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

Re^7: Experimental features: autoderef vs postfix deref

by BrowserUk (Patriarch)
on Jul 13, 2015 at 20:05 UTC ( [id://1134585]=note: print w/replies, xml ) Need Help??


in reply to Re^6: Experimental features: autoderef vs postfix deref
in thread Experimental features: autoderef vs postfix deref

I would not want: ... to auto-magically assume both (or all at "same" level) declarations of $state_var to be the same variable.

I agree. That would be broken.

But having been bitten by having to convert uses of state back to the traditional form; I simply don't think the "convenience" factor is real. It's just not worth the (my) bother.


With the rise and rise of 'Social' network sites: 'Computers are making people easier to use everyday'
Examine what is said, not who speaks -- Silence betokens consent -- Love the truth but pardon error.
"Science is about questioning the status quo. Questioning authority".
In the absence of evidence, opinion is indistinguishable from prejudice.
I'm with torvalds on this Agile (and TDD) debunked I told'em LLVM was the way to go. But did they listen!
  • Comment on Re^7: Experimental features: autoderef vs postfix deref

Replies are listed 'Best First'.
Re^8: Experimental features: autoderef vs postfix deref
by RonW (Parson) on Jul 13, 2015 at 20:34 UTC

    Having a background in C, I use "static" variables a lot. So, to me, Perl's "state" variables are the same thing.

    (Also, I think it makes the usage clearer to the code reviewers and potential future code maintainers.)

    (When I have real use case for a closure, I will code it that way. If it's just to "simulate" a "static" variable, I would rather use "state".)

      RonW,

      I also have a C background, and agree about "state" variables being the Perl equivalent of C "static" variables.

      Using "state" simplifies cases like the following where one shouldn't have to remember to print an HTML header, but also doesn't want it more than once:

      #!/usr/bin/perl use strict; use warnings; use feature qw{ state }; sub html { my ($text) = @_; # Make the header idempotent state $b_header++ or print "Content-type: text/html\n\n"; print $text; } html("<br>This is some html, prior to which a header is printed\n"); html("<br>This is too (but the header was printed already)\n");

      Output:

      Content-type: text/html <br>This is some html, prior to which a header is printed <br>This is too (but the header was printed already)
      say  substr+lc crypt(qw $i3 SI$),4,5

Log In?
Username:
Password:

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

How do I use this?Last hourOther CB clients
Other Users?
Others drinking their drinks and smoking their pipes about the Monastery: (5)
As of 2024-04-19 17:55 GMT
Sections?
Information?
Find Nodes?
Leftovers?
    Voting Booth?

    No recent polls found