Beefy Boxes and Bandwidth Generously Provided by pair Networks
Do you know where your variables are?
 
PerlMonks  

Re: 302 Found Location Message

by AnomalousMonk (Bishop)
on Mar 09, 2020 at 21:35 UTC ( #11114048=note: print w/replies, xml ) Need Help??


in reply to 302 Found Location Message

Walter_T:   To expand on the first point made by haukex, re-declaring a global (e.g., our) variable isn't just unnecessary, it's completely useless. The only thing it will do is to generate a warning message if warnings are enabled – which, IMHO, they should always be.

c:\@Work\Perl\monks>perl -le "use strict; use warnings; ;; our $x = 'x before loop'; print qq{before loop: '$x'}; ;; for my $i (1 .. 2) { our $x = 'x in loop'; print qq{in loop: iteration $i: '$x'}; } ;; print qq{after loop: '$x'}; " "our" variable $x redeclared at -e line 1. (Did you mean "local" instead of "our"?) before loop: 'x before loop' in loop: iteration 1: 'x in loop' in loop: iteration 2: 'x in loop' after loop: 'x in loop'

As the warning message suggests, you may have been thinking of local, which will actually do something in this situation.

c:\@Work\Perl\monks>perl -le "use strict; use warnings; ;; our $x = 'x before loop'; print qq{before loop: '$x'}; ;; for my $i (1 .. 2) { local $x = 'x in loop'; print qq{in loop: iteration $i: '$x'}; } ;; print qq{after loop: '$x'}; " before loop: 'x before loop' in loop: iteration 1: 'x in loop' in loop: iteration 2: 'x in loop' after loop: 'x before loop'
But even when used in this way, globals should, I believe, be avoided. In general, use globals only for good, well-understood reasons.


Give a man a fish:  <%-{-{-{-<

Log In?
Username:
Password:

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

How do I use this? | Other CB clients
Other Users?
Others romping around the Monastery: (5)
As of 2020-05-29 14:37 GMT
Sections?
Information?
Find Nodes?
Leftovers?
    Voting Booth?
    If programming languages were movie genres, Perl would be:















    Results (169 votes). Check out past polls.

    Notices?