Beefy Boxes and Bandwidth Generously Provided by pair Networks
Your skill will accomplish
what the force of many cannot
 
PerlMonks  

Re: Variable scope in while loop

by davido (Archbishop)
on Dec 19, 2012 at 22:18 UTC ( #1009649=note: print w/ replies, xml ) Need Help??


in reply to Variable scope in while loop

In the first case, the scope of the $number variable is one iteration. Upon the next iteration, a new $number is created, and then tested whether or not it is equal to 10. It never will be; it's brand-spankin'-new.

On the second version, it should be pretty obvious that $number is never being declared, which is a strictures violation.

The third example is the only one that will work, because the lifetime of the $number variable needs to persist past the end of each iteration. The conditional test takes place at the beginning of the next iteration, so the variable's life must outlive the block in order to be tested.

You might be thinking of while( my $input = <DATA> ) { .... }, which works because the expression populates $input from the <DATA> iterator before the conditional is tested.


Dave


Comment on Re: Variable scope in while loop
Download Code

Log In?
Username:
Password:

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

How do I use this? | Other CB clients
Other Users?
Others rifling through the Monastery: (13)
As of 2014-07-25 17:35 GMT
Sections?
Information?
Find Nodes?
Leftovers?
    Voting Booth?

    My favorite superfluous repetitious redundant duplicative phrase is:









    Results (174 votes), past polls