Beefy Boxes and Bandwidth Generously Provided by pair Networks
Clear questions and runnable code
get the best and fastest answer

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.


Comment on Re: Variable scope in while loop
Download Code

Log In?

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

How do I use this? | Other CB clients
Other Users?
Others cooling their heels in the Monastery: (6)
As of 2015-11-25 02:15 GMT
Find Nodes?
    Voting Booth?

    What would be the most significant thing to happen if a rope (or wire) tied the Earth and the Moon together?

    Results (668 votes), past polls