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


in reply to Re: Wrong + Right = Even Worse
in thread Wrong + Right = Even Worse

But in that case I would have to change all calls in the OO module from subroutine() to main::subroutine().
لսႽ† ᥲᥒ⚪⟊Ⴙᘓᖇ Ꮅᘓᖇ⎱ Ⴙᥲ𝇋ƙᘓᖇ

Replies are listed 'Best First'.
Re^3: Wrong + Right = Even Worse
by tobyink (Canon) on Apr 03, 2014 at 22:41 UTC

    Or ::subroutine() (the main is optional). That seems simpler than changing everything else though, and less hacky than trying to fool %INC (which will probably lead you to a whole bunch of warnings in the redefine category if warnings are enabled).

    use Moops; class Cow :rw { has name => (default => 'Ermintrude') }; say Cow->new->name
      You can guess - legacy code. No strict, no warnings. I can get almost there with simple
      s/&/::/g

      There would've been no redefine warnings, though. I need the scripts to be read again, because the subroutines are going to a different namespace, therefore nothing gets redefined.

      لսႽ† ᥲᥒ⚪⟊Ⴙᘓᖇ Ꮅᘓᖇ⎱ Ⴙᥲ𝇋ƙᘓᖇ