The Perl Toolchain Summit needs more sponsors. If your company depends on Perl, please support this very important event.

NAME

Sub::Call::Tail - Tail calls for subroutines and methods

VERSION

version 0.07

SYNOPSIS

    use Sub::Call::Tail;

    # instead of @_ = ( $object, @args ); goto $object->can("method")
    tail $object->method(@args);

    # instead of @_ = @blah; goto &foo
    tail foo(@blah);

DESCRIPTION

This module provides a tail modifier for subroutine and method calls that will cause the invocation to have the same semantics as goto &sub.

When the tail modifier is compiled the inner subroutine call is transformed at compile time into a goto.

USAGE WARNING

<B>WARNING! The author does not endorse using this module for anything real. It was written primarily to demonstrate that such quackery can be achieved. Use at your own risk!

SEE ALSO

B::Hooks::OP::Check::EntersubForCV

CPS

SUPPORT

Bugs may be submitted through the RT bug tracker (or bug-Sub-Call-Tail@rt.cpan.org).

AUTHOR

יובל קוג'מן (Yuval Kogman) <nothingmuch@woobling.org>

CONTRIBUTORS

  • Karen Etheridge <ether@cpan.org>

  • Florian Ragwitz <rafl@debian.org>

  • Graham Knop <haarg@haarg.org>

  • Andrew Main (Zefram) <zefram@fysh.org>

  • Karen Etheridge <github@froods.org>

COPYRIGHT AND LICENCE

This software is copyright (c) 2009 by יובל קוג'מן (Yuval Kogman).

This is free software; you can redistribute it and/or modify it under the same terms as the Perl 5 programming language system itself.