NAME

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

VERSION

version 0.08

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

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>

  • Graham Knop <haarg@haarg.org>

  • Florian Ragwitz <rafl@debian.org>

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

  • Graham Ollis <plicease@cpan.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.