Look at your traversal routine. Does it use a variable that was defined outside itself? No. The referred array was defined elsewhere, but that is besides the point (and exactly the raison d'etre for references). Inside the function, you use a variable that holds a reference; this reference came from the function's parameters. No global here.

An approach you might take to make this slightly cleaner would be to declare the actual tree traversal routine as private, and have a public function that declares an array, passes a reference to it and its parameters to the private function, and then returns the results from that array. But it is a question of circumstances and taste whether this is actually any real improvement.

Update: I have to retract some of my statements I guess. Abigail made excellent points about exceptions and reentrance while I was writing this. ++

Makeshifts last the longest.


In reply to Re: Global variables by Aristotle
in thread Improper use of global variable? (was: Global variables) by Basilides

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.