I haven't narrowed it down to a specific yet, but it appears as though your import routine is clobbering the $SUCCESS variable (perhaps confusing it with the constant with the same name), which is why things work if you use the packages in the opposite order (if Demo1 is loaded second, it initializes this variable *after* the clobbering in Demo2 has been done). You can see this for yourself by renaming $SUCCESS to something else. Also note that the use constant; line will be compiled/executed before the import sub is defined, which may have something to do with it.

Not all packages have to be loaded in specific order, but some do. For example, I'm working on a project right now that uses numerous packages (and BEGIN blocks). One package needs to initialize a piece of external hardware as soon as it is used, but before any of its functions are called, and then another module does some work with that hardware when it is used. If the first module isn't loaded, the second one will break.


In reply to Re: How relevant is the order of 'use's ? by stevieb
in thread How relevant is the order of 'use's ? by Krambambuli

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.