Beefy Boxes and Bandwidth Generously Provided by pair Networks
Syntactic Confectionery Delight
 
PerlMonks  

Re^5: Puzzling $| behavior

by ikegami (Pope)
on Oct 08, 2007 at 16:58 UTC ( #643502=note: print w/replies, xml ) Need Help??


in reply to Re^4: Puzzling $| behavior
in thread Puzzling $| behavior

It's not because of an optimization.

# $_ $_[0] $_[1] $_[0] $_[1] # ----- ----- ----- ----- ----- $_ = 1; # 1 do { # local @_; # alias $_[0] = $_+=2; # 3 $_ 3 alias $_[1] = $_+=3; # 6 $_ $_ 6 6 &f; };

Add $_++; to f and you'll see it print 7, 7 because $_[0] and $_[1] are aliased to $_.

It works that way because += returns its LHS as an lvalue.

>perl -le "$_=1; ($_+=2)+=3; print $_" 6

Log In?
Username:
Password:

What's my password?
Create A New User
Node Status?
node history
Node Type: note [id://643502]
help
Chatterbox?
[Corion]: This is vaguely inspired by that list of "nasty" strings, which I'd like to replace among HTTP parameters, just to see whether the application crashes, but also for easy downloading of a list of URLs etc
[Corion]: Maybe I'll just conoct something using Algorithm::Permute to create an (OO) generator for such requests, or a simple function.
[Corion]: For testing I imagine one would want to test a random sampling of such "bad"/"unexpected" requests, while for downloading, one would want to generate them all in order, but not necessarily as a huge list
[Corion]: s/Algorithm:: Permute/Algorithm ::Loops/

How do I use this? | Other CB clients
Other Users?
Others romping around the Monastery: (7)
As of 2017-01-16 15:42 GMT
Sections?
Information?
Find Nodes?
Leftovers?
    Voting Booth?
    Do you watch meteor showers?




    Results (151 votes). Check out past polls.