As code grows more complex over time (and into multiple modules), it is easy overwrite a global variable when you re-use the name by accident. And it can be hard to trace any problem, because you just can't put a debug print/stacktrace in the ONE function that is able to modify the variable.

Sometimes a couple of global variables might be the right choice, but more often than not they are a liability.

For me, the big exception to the rule is when i write code for microcontrollers. When you only have like 1000-4000 bytes of RAM (if you are lucky), ditching modern OO and basically laying out the memory map by hand is sometimes the best (and only) option. It's astonishing how much you can achieve with a kilobyte of memory when you spend a year shuffling bits and bytes around in your memory layout...

PerlMonks XP is useless? Not anymore: XPD - Do more with your PerlMonks XP

In reply to Re^3: Common subs and Global Variables by cavac
in thread Common subs and Global Variables by Anonymous Monk

Title:
Use:  <p> text here (a paragraph) </p>
and:  <code> code here </code>
to format your post, it's "PerlMonks-approved HTML":



  • 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:
    & &amp;
    < &lt;
    > &gt;
    [ &#91;
    ] &#93;
  • Link using PerlMonks shortcuts! What shortcuts can I use for linking?
  • See Writeup Formatting Tips and other pages linked from there for more info.