in reply to Re: Export all subs from a module
in thread Export all subs from a module

I was thinking along the lines of:
@EXPORT = keys(%MyModule::);

<a href="http://www.graq.co.uk">Graq</a>

Replies are listed 'Best First'.
Re: Re: Re: Export all subs from a module
by davorg (Chancellor) on Oct 31, 2001 at 17:34 UTC

    That's nice, but it potentially exports too much - not just the subs, but everything in stash.

    --
    <http://www.dave.org.uk>

    "The first rule of Perl club is you don't talk about Perl club."

Re: Re: Re: Export all subs from a module
by ChemBoy (Priest) on Oct 31, 2001 at 21:30 UTC

    To do this in a way that doesn't export package vars as well (which I believe was davorg's objection), perhaps this would work:

    @EXPORT_OK = grep {defined *{$MyPackage::{$_}}{CODE} } keys %MyPackage::;

    And unless I'm very much mistaken, that line could just as well be at the top of your package as at the bottom: unless you're doing fancy run-time redefinition of subs, they should all be defined by the time the first line of non-begin-block code gets evaluated.



    If God had meant us to fly, he would *never* have given us the railroads.
        --Michael Flanders

      Thanks everyone for your help - I'll go with this method.

      Looks easy to export nearly-all the subs, like maybe all of them except the ones which start with underscores, which could be handy for the future.

      Cheers!
      andy.