Is this correct?: You want a module that can be configured to do stuff differently depending on how it's configured. And you may want to have two or more of these configurations at the same time in the same program. (Otherwise you probably wouldn't worry about clashing variables.)

To me it seems like you want an object/class. 'instance1' of the object does it this way, 'instance2' of the object does it that way. The customization can then be done during class initialization and then you pass the class instance around and do stuff.

The following code is only for illustrative purposes. It is incomplete and will not compile. Assume 'Find::Files' is an actual module and does whatever you want it to do.

# first instance sub magic1 { ... } my $obj1 = Find::Files( 'function' => \&magic1 ); # let's do some magic! $obj1->find_and_call_function('/tmp'); # ------------------------------------------------ # second instance # can be in the same file or in another module sub magic2 { ... } my $obj2 = Find::Files( 'function' => \&magic2 ); # let's do some other magic! $obj2->find_and_call_function('/tmp');

In reply to Re: Design question: storing package 'flags'. by Monk::Thomas
in thread Design question: storing package 'flags'. by perl-diddler

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.