Ahh the joys of inheriting code.

The reason why graph() works is that most of the variables in that script are being treated as globals, which is a bad practice as it makes it very difficult to debug.

Everything but $minEnergy, $maxEnergy, $xYen,and $yLen are used globally within graph(). Some of these are forgiveable, as they are being treated as constants.. but anything that could be modified should be passed to the graph() sub. This includes the $im object.

I would strongly advise enabling strict and warnings. It will tell you all of the places where these variables are being used inappropriately.

It would also be good to split some of the behaviour into worker functions that encapsulate one set of behaviour.


In reply to Re: Prob with 'while' loop and subroutine calling by imp
in thread Prob with 'while' loop and subroutine calling by cool

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.