sub G { our @ydata = 'Gaaaahh!'; };;
sub F{
my @a = @_;
print qq{pre-G: (@ydata)};
G();
print qq{post-G: (@ydata)};
};;
F(1..4);;
pre-G: ()
post-G: (Gaaaahh!)
The problem has nothing to do with aliasing and everything to do with not localising!
Your previous quote is better stated as: "don't use code that uses globals for no good reason.".
Which is doubly true for code that fails to localise its use of globals.
a healthy dose of paranoia.
Sorry, but I will always consider 'paranoia' in programming -- and pretty much everything else for that matter -- with exclusively negative connotations.
The teaching of 'paranoia', rather than 'knowledge', in an attempt to avert disaster, is always a counter productive and ultimately futile process.
With paranoia, one can only hope to avert bad consequences; with knowledge one can know you have.
Don't hope, know!
With the rise and rise of 'Social' network sites: 'Computers are making people easier to use everyday'
Examine what is said, not who speaks -- Silence betokens consent -- Love the truth but pardon error.
"Science is about questioning the status quo. Questioning authority".
In the absence of evidence, opinion is indistinguishable from prejudice.
|