http://www.perlmonks.org?node_id=202650


in reply to Re: Re: What does this code do?
in thread What does this code do?

You're absolutely right. I had, apparently mistakenly, assumed that @_ was a superset of the contents of both @EXPORT_OK and @fail, instead of a subset of either.

Lacking the context of how @_ is being defined, it was an easy assumption to make. Without visibility into the calling code, I'm reticent to hazard another guess.

I suppose it's not oustide the scope of reason that the code may not reflect the author's intent. In a module this pervasive, however, it's not likely that this is the case.

--jwest

-><- -><- -><- -><- -><-
All things are Perfect
    To every last Flaw
    And bound in accord
         With Eris's Law
 - HBT; The Book of Advice, 1:7

Replies are listed 'Best First'.
Re: Re: Re: Re: What does this code do?
by John M. Dlugosz (Monsignor) on Oct 03, 2002 at 21:53 UTC
    I think it says, "If an argument matches the first entry in @EXPORT_OK, then do the heavy (general) form. Even if said argument (and all arguments) contain no non-alpha characters (including sigels).

    Likewise for the fail array, but I don't know what that's for yet.

    Module buggy? Well, calling export_to_level was reportedly buggy a year ago, so who knows? If it mistakenly runs the general form, it will not malfunction, so a mistake in this logic could indeed go unnoticed.

    I'm wondering if it's to support a feature that got dropped. Maybe the first entry in @EXPORT_OK was to mean something special?