in reply to Re: !Overriding Builtin print
in thread !Overriding Builtin print

No. You are mistaking ->import() for BEGIN. The point is getting the override information to the parser before it parses the portion you expected to be overridden. ->import() can do that because it happens at BEGIN-time during use(). You can do that yourself with an inline BEGIN block.

Replies are listed 'Best First'.
Re: Re: Re: !Overriding Builtin print
by demerphq (Chancellor) on Oct 20, 2003 at 13:56 UTC

    Interesting. However, given the documentation on my system this mistake is not difficult to understand... From perlsub

    Overriding may be done only by importing the name from a module--ordin +ary predeclaration isn't good enough. However, the use subs pragma lets yo +u, in effect, predeclare subs via the import syntax, and these names may +then override built-in ones: use subs 'chdir', 'chroot', 'chmod', 'chown'; chdir $somewhere; sub chdir { ... }

    But thanks for the clarification.


    ---
    demerphq

      First they ignore you, then they laugh at you, then they fight you, then you win.
      -- Gandhi