in reply to Re: Passing a run time string to require
in thread Passing a run time string to require

You're right, it is a hack. It's probably useable in tests and standalone scripts. But this is for a CPAN module. I don't want to rely on someone using my module not having an autoloaded method called require. C'est la vie :|.

Admittedly, a plug-in is pretty close to what I am doing, but in this case, not a plug-in to an existing module (which a CPAN search gives); this is one of my modules. However, the generic modules, such as Module::Pluggable, seem overkill for what I am doing at present.

--
I'm Not Just Another Perl Hacker

  • Comment on Re^2: Passing a run time string to require

Replies are listed 'Best First'.
Re^3: Passing a run time string to require
by BUU (Prior) on Oct 23, 2004 at 03:46 UTC
    You're right, it is a hack. It's probably useable in tests and standalone scripts. But this is for a CPAN module. I don't want to rely on someone using my module not having an autoloaded method called require. C'est la vie :|.
    UNIVERSAL::require( $scalar )
      Not sure what you are alluding to here. If you pull in UNIVERSAL::require, this has polluted the UNIVERSAL name space, and made the require method available everywhere. If you haven't pulled in Schwern's module, Perl will not find the sub UNIVERSAL::require.

      If somebody else has a require method, or rather doesn't actually have one at the moment, but is dependent on AUTOLOAD being called, my calling in UNIVERSAL::require in a completely different module will stop this working, as Schwern's require will get called, not AUTOLOAD.

      --
      I'm Not Just Another Perl Hacker

        Oh, I read too quickly and missed the fact that it was a moduled-based method. I just assumed it was core.