Globals aren't necessarily bad, but they can make growing your program difficult. Suppose you have three functions that work as a group to parse hash X. All is well and good when you are only loading data from one data set into your HoA.
But suppose you one day want to compare HoA's drawn from two or more data sets? What will you do then? Because your functions expect their data in the one and only global variable you are a bit stuck. The problem isn't unsolvable, but it is going to be ugly. You could:
- run the functions as is, copy data from the global; clear the global; and then run them again with the new data set.
- refactor your code into objects - each object has its own hash. The functions become methods that operate on the object's hash.
However, if, at the very start, you had defined your data and three functions using an an object, then you would have gotten all the benefits of a global variable and avoided the downsides of global variables should your needs expand.
Best, beth
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.