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


in reply to Wrong + Right = Even Worse

To load a non-module Perl file unconditionally, you should use do, not require. (Even better is to (eventually) convert things to real modules, of course.)

- tye        

Replies are listed 'Best First'.
Re^2: Wrong + Right = Even Worse (do)
by choroba (Cardinal) on Apr 04, 2014 at 07:34 UTC
    That depends on what the pseudo-modules do. Most of them define subs and initialize global variables, so do wouldn't be much better - at least in the pseudo-modules. It might work in the OO module, though.
    لսႽ† ᥲᥒ⚪⟊Ⴙᘓᖇ Ꮅᘓᖇ⎱ Ⴙᥲ𝇋ƙᘓᖇ
      Most of them define subs and initialize global variables, so do wouldn't be much better

      The problem you reported was that one module was including non-modules in order to get those subroutines defined in its package and that broke other places that still wanted those subs defined in their package (main).

      do would fix the problem you reported.

      - tye        

        do runs the file always, but it does update %INC if it finds it. Therefore, it might not solve the problem.
        لսႽ† ᥲᥒ⚪⟊Ⴙᘓᖇ Ꮅᘓᖇ⎱ Ⴙᥲ𝇋ƙᘓᖇ