Catalyst::Plugin::Digress This plugin gives you the useful part of the Catalyst "forward" method without the weirdness (or the madness): * It does not catch exceptions (the most important benefit). * It passes parameters like in a normal Perl method call. * It does not mess with "$c->request->arguments". * It preserves list vs scalar context for the call. * It does not walk the Perl call stack every time (or ever, even once) to figure out what its own name was (or for any other purpose). * It cannot forward to components, only actions (because don’t ask how forwarding to components works). In other words, is almost identical to a straight method call: package MyApp::Controller::Some; sub other_action : Private { ... } package MyApp::Controller::Root; sub index : Path { my ( $c, @some_args ) = ( shift, @_ ); # ... my @some_return = $c->digress( '/some/other_action', @any_old_args ); # this is nearly identical to the following line: my @some_return = $c->controller( 'Some' )->other_action( $c, @any_old_args ); # ... } Except, of course, that it takes an action path instead of a plain method name, and it maintains the Catalyst action stack for you just like "forward" would, which keeps various Catalyst mechanisms working, such as calling "forward" and friends from "other_action" with a local action name. INSTALLATION This is a Perl module distribution. It should be installed with whichever tool you use to manage your installation of Perl, e.g. any of cpanm . cpan . cpanp -i . Consult http://www.cpan.org/modules/INSTALL.html for further instruction. Should you wish to install this module manually, the procedure is perl Makefile.PL make make test make install COPYRIGHT AND LICENSE This software is copyright (c) 2020 by Aristotle Pagaltzis. This is free software; you can redistribute it and/or modify it under the same terms as the Perl 5 programming language system itself. POD ERRORS Hey! The above document had some coding errors, which are explained below: Around line 26: Non-ASCII character seen before =encoding in 'don’t'. Assuming UTF-8