The following module was proposed for inclusion in the Module List:

  modid:       Exporter::VA
  DSLIP:       Rdphp
  description: Improved Exporter with Versioning and Alias
  userid:      DLUGOSZ (John M. Dlugosz)
  chapterid:    2 (Perl_Core_Modules)
  communities:
    perlmonks.org

  similar:
    Exporter

  rationale:

    Exporter::VA.pm is a Perl module that is a replacement for the
    traditional Exporter module.

    I wanted to rewrite a couple simple modules to make them more
    capable, and I also wanted to remove the default exports. After all,
    the new way would be object-oriented. It would still have the
    function call for compatibility, but we don't want it as a default.
    I figured playing around with VERSION and Exporter's export_to_level
    would do the trick, but it was not simple. I did in fact redo two
    modules, but the compatibility mode stuff stalled me.

    Finally, I realized that the remove-default-exports issue should be
    a reusable module in itself. After poking around and finding
    Exporter lacking, I decided to write an exporter from scratch. I
    called it VA for "Versioning and Aliasing", the major features that
    distinguish it and provide it's reason for being.

    I figued I needed a more general-purpose engine that could export
    things (not just named things, but generated things) from a module
    to a possibly-different name. Going from a named item to the same
    name is simply too restrictive. Generalize it, and anything is
    possible. That gave the Alias concept. Then I needed to be able to
    specify different definitions for different versions. I thought
    about totally different data structures for each version, but
    realized that they would have a lot in common and I really only want
    to give the changes. The interface to this was the hardest part of
    the process.

    The concept is pretty open-ended, and it would not do to have
    something unruly. Limiting it to versioned names and versioned tags
    in a single hash prooved to be workable, and the programmatic
    interface is still available for "anything else". It is designed to
    be extended, treating the derived class user as another potentional
    customer and providing documentation and a proper interface for this
    purpose.

    I got some valuable feedback and ideas on the Perl Monks site.
    Finally, Exporter::VA was the result.

  enteredby:   DLUGOSZ (John M. Dlugosz)
  enteredon:   Mon Dec 30 19:26:13 2002 GMT

The resulting entry would be:

Exporter::
::VA              Rdphp Improved Exporter with Versioning and Alias  DLUGOSZ


Thanks for registering,
The Pause Team

PS: The following links are only valid for module list maintainers:

Registration form with editing capabilities:
  
https://pause.perl.org/pause/authenquery?ACTION=add_mod&USERID=93400000_2bdae4c6cbd42022&SUBMIT_pause99_add_mod_preview=1
Immediate (one click) registration:
  
https://pause.perl.org/pause/authenquery?ACTION=add_mod&USERID=93400000_2bdae4c6cbd42022&SUBMIT_pause99_add_mod_insertit=1

Reply via email to