Beefy Boxes and Bandwidth Generously Provided by pair Networks
Perl-Sensitive Sunglasses
 
PerlMonks  

Re: Order of printf statements vs order of actual lines printed out

by davido (Archbishop)
on Apr 09, 2013 at 05:20 UTC ( #1027645=note: print w/replies, xml ) Need Help??


in reply to Order of printf statements vs order of actual lines printed out

It's because of the error right here:

printf "\nabove first set of dashes#: [" . #@foo . "]\n"; # The error is -------------------here------^^

So, what's happening? By typing #@ when you meant to type $# you initiated a comment. So "@foo . "\n"; was no longer code, but rather, a comment. That made the line in question look like this:

printf "\nabove first set of dashes#: [" . printf "first set of dashes------------\n";

Notice how you're using the concatenation operator, "." to append the output from "printf  "first set of dashes------------\n";" to the string "\nabove first set of dashes#:  [". Before that concatenation can occur, that second printf has to be evaluated to obtain its return value (which is "1"). And in so doing, its side effect (in the functional sense) is taking place: It's printing the "first set of dashes....." line.


Dave

Log In?
Username:
Password:

What's my password?
Create A New User
Node Status?
node history
Node Type: note [id://1027645]
help
Chatterbox?
[Corion]: You'll have to look somewhere esoteric for that. Maybe some tied variable or special dualvar can also trigger that. But it's certainly not a common occurrence
[Corion]: And on 5.20, the following also outputs no find:perl -wle 'for my $x ("\x{2000}".."\ x{1fffff}") { if( $x && ! length $x ) { warn qq(<$x>); warn length $x; die } }'
[Corion]: (this time on Unix)
[hippo]: Understood. I'll have to go through the code and see if it's doing anything fancy with ties, dual-vars or non-scalars. In the end, it's probably a bug though.
[Corion]: Aaah - you should be able to do this with overload, but I would hit somebody really hard if they constructed objects that are true but the empty string, and you not knowing about the domain knowledge where this makes sense

How do I use this? | Other CB clients
Other Users?
Others chanting in the Monastery: (14)
As of 2017-07-27 13:34 GMT
Sections?
Information?
Find Nodes?
Leftovers?
    Voting Booth?
    I came, I saw, I ...
























    Results (413 votes). Check out past polls.