in reply to RFC: Sub::Prepend - Prepend code to named subroutines

Currently it's only an exported subroutine called prepend. Is that a good name?

I'm not a native English speaker, so my opinion might be a bit off, but... "prepend" sounds rather spatial to, like adding something at the begin of a string. I'd suggest precede instead, which sounds more temporal.

Last but not least: would you like to see this on CPAN?

Yes. And please describe the difference to the various Hook::* modules in the documentation ;-)

Replies are listed 'Best First'.
Re^2: RFC: Sub::Prepend - Prepend code to named subroutines
by sasdrtx (Friar) on Jun 05, 2008 at 13:39 UTC

    Your* knowledge of English exceeds that of the average native speaker. Can't even see any accent from here.

    To the point, I would agree that 'prepend' is somewhat lacking. That implies a permanent attachment. I haven't got any ideas that I particularly like, but maybe you** could generate something out of 'pre', 'sub', 'hook', 'trap', and 'call' in some combination.

    *moritz, **lodin

    sas

      Actually, both the implication of permanent attachment and spatial rather than temporal seem to fit. The first is clear cut--it is a permanent modification, unlike some of the other modules that support unwrapping.

      The second is more of how you think about it. I think about it as a code block that's inserted at the very beginning, i.e. "as a string", so

      prepend foo => sub { # Remove the invocant. shift; }; sub foo { print shift; }
      is equivalent to
      sub foo { { # Remove the invocant. shift; } print shift; }
      That doesn't mean I'm set on prepend. Spelled-out suggestions are still welcome.

      lodin

      While I don't mind ::Prepend as it seems accurate given the problem space, perhaps ::Prefix might lessen the vocabulary curve without too much precision loss?

      --hsm

      "Never try to teach a pig to sing...it wastes your time and it annoys the pig."