Hmmm.... maybe you could use a completely different approach.
Now you look in an OO way at the 'capabilities' of
your packages. I would try a 'functional' approach:
For this, I would use Exporter. Every plugin loaded
(use'd) simply
overwrites the main namespace with the new function. It's
than up to the plugin to determine if it's right to
overwrite or not. You can search the namespace with %::.
Additionally, with @EXPORT_OK, the API can determine which
names to import.
If you set up the API like this, the order in which the
modules are loaded is important. Therefore, add the name
of the plugin when it's downloaded to a config file.
Upon restart,
load the plugins in the specified order, to achieve the
same state.
For example, if your API contains the function 'my_sub',
the package 'plugin.pm' would EXPORT 'my_sub',
thereby overwriting the API's sub.
You can extend this even to OO-perl, methinks.
Hope this helps,
Jeroen
"We are not alone"(FZ)
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: |
| & | | & |
| < | | < |
| > | | > |
| [ | | [ |
| ] | | ] |
Link using PerlMonks shortcuts! What shortcuts can I use for linking?
See Writeup Formatting Tips and other pages linked from there for more info.