You want to declare all your variables with my. Scoping issues are one of the biggest causes of hard to find bugs.
Get into the habit of declaring your variables at the smallest scope possible. See
Running a subroutine a certain number of times for a good example of scoping errors caused by not declaring variables. Get in the habit of using lexical (my'ed) variables whenever possible.
For the few global variables that you do need you and use the
our keyword to make a package global variable. See chapter 4 of the Camel book for more information
If you find yourself needing to maintain a lot of state information throughout your program you might want to consider using and OO approach. See Damian Conway's "Object Oriented Perl" for a good introduction.
Trust me, scoping seems like an unneccessary pain-in-the-ass now, but soon you will be doing it as second nature (and preaching about it to others).
-pete
"Pain heals. Chicks dig scars. Glory lasts forever."
Posts are HTML formatted. Put <p> </p> tags around your paragraphs. Put <code> </code> tags around your code and data!
Titles consisting of a single word are discouraged, and in most cases are disallowed outright.
Read Where should I post X? if you're not absolutely sure you're posting in the right place.
Please read these before you post! —
Posts may use any of the Perl Monks Approved HTML tags:
- a, abbr, b, big, blockquote, br, caption, center, col, colgroup, dd, del, details, div, dl, dt, em, font, h1, h2, h3, h4, h5, h6, hr, i, ins, li, ol, p, pre, readmore, small, span, spoiler, strike, strong, sub, summary, sup, table, tbody, td, tfoot, th, thead, tr, tt, u, ul, wbr
You may need to use entities for some characters, as follows. (Exception: Within code tags, you can put the characters literally.)
| |
For: |
|
Use: |
| & | | & |
| < | | < |
| > | | > |
| [ | | [ |
| ] | | ] |
Link using PerlMonks shortcuts! What shortcuts can I use for linking?
See Writeup Formatting Tips and other pages linked from there for more info.