Surely this has been handled long ago and far away. Maybe I didn't notice, maybe I forgot, I am getting old.
So, is it bad practice to have multiple packages at different paths implementing the same methods according to the configuration of the requiring package?

Say, I have some application which needs auth methods, search and such and can be configured to either use some X500 implementation (e.g. LDAP, AD) or database stuff. Is it sensible to

if($config{X500}) { require Users::LDAP; } elsif ($config{DB}) { require Users::DB; } elsif (...) { ... } else { die "no suitable User handling module found\n"; }

and have Users/{LDAP,DB,...}.pm which all implement Users via package Users; ?

Which each sport:

package Users;

Well, I could have a "Users" package which gets the configuration object passed in upon import and does what it should. What do you think is best? Glove this or that way turned in or out?

Well yes, polymorphism, signatures and such... how would you handle that case?

perl -le'print map{pack c,($-++?1:13)+ord}split//,ESEL'

In reply to packages (Classes) and file names by shmem

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.