Beefy Boxes and Bandwidth Generously Provided by pair Networks
Syntactic Confectionery Delight
 
PerlMonks  

Re^5: Global variable vs passing variable from sub to sub

by Wassercrats
on Sep 15, 2004 at 02:08 UTC ( #391049=note: print w/ replies, xml ) Need Help??


in reply to Re^4: Global variable vs passing variable from sub to sub
in thread Global variable vs passing variable from sub to sub

You said "...I just plain don't see the difference between $options{debug} and $optoins{debug}."

I've had bugs like that. I don't know what would take more time, debugging such bugs or initializing every variable. The former is rare. The latter would have to be done all the time.

Luckily, I have VarStructor 1.0 to list all my variables so I could see if I made such a typo. And there is no module that does a better job listing the variables within a script. Diotalevi thought he had a contender, then demerphq thought he had one. Bugs were brought to their attention shortly thereafter. If the only contribution VarStructor 1.0 has made to the Perl community is to highlight the bugs in competing modules, and get them repaired, it was worth it. And now that the bugs are fixed in the competing modules, VarStructor 1.0 STILL kicks their ass.

I deleted the VarStructor 1.0 code from Perlmonks a few days ago, so I guess you all have one more reason to use strict than I do. This isn't a local variable issue anyway, incase nobody noticed.

You said "People use local variables in subs because they like to turn them into modules that get used in other programs..."

I'm not such a people.


Comment on Re^5: Global variable vs passing variable from sub to sub
Re^6: Global variable vs passing variable from sub to sub
by dragonchild (Archbishop) on Sep 15, 2004 at 02:27 UTC
    I'm not such a people.

    Ok. No-one says you have to do it. We're simply explaining why we choose to 'use strict', initialize every variable, scope things as tight as possible, and all that other crap.

    I don't know what would take more time, debugging such bugs or initializing every variable. The former is rare. The latter would have to be done all the time.

    Personally, I find it a lot easier to declare every variable immediately, because it helps me keep track of things. That may not be a concern of yours, so my experiences may not have relevance to you. I also prefer to have Perl determine when I typo something vs. running a separate program. Again, different strokes.

    I also find it helpful to scope variables as tightly as possible, because it helps me understand the code I just wrote. I choose to keep as few details in my head as possible. This requires me to organize my code in a certain way, so that I can immediately understand the code I wrote in a glance. Again, I am not saying that I have "The Holy Writ"(tm) when it comes to coding styles. I'm only describing those practices that help me, personally, and explaining why I recommend them to people who ask.

    ------
    We are the carpenters and bricklayers of the Information Age.

    Then there are Damian modules.... *sigh* ... that's not about being less-lazy -- that's about being on some really good drugs -- you know, there is no spoon. - flyingmoose

    I shouldn't have to say this, but any code, unless otherwise stated, is untested

Log In?
Username:
Password:

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

How do I use this? | Other CB clients
Other Users?
Others chilling in the Monastery: (8)
As of 2014-12-25 13:54 GMT
Sections?
Information?
Find Nodes?
Leftovers?
    Voting Booth?

    Is guessing a good strategy for surviving in the IT business?





    Results (160 votes), past polls