CatalystX::REPL - read-eval-print-loop for debugging your Catalyst application
version 0.04
package MyApp; use Moose; # Requires Catalyst 5.8 series extends 'Catalyst'; with 'CatalystX::REPL'; __PACKAGE__->setup(qw/-Debug/); 1;
Using Carp::REPL with a Catalyst application is hard. That's because of all the internal exceptions that are being thrown and caught by Catalyst during application startup. You'd have to manually skip over all of those.
This role works around that by automatically setting up Carp::REPL after starting your application, if the CATALYST_REPL or MYAPP_REPL environment variables are set:
CATALYST_REPL
MYAPP_REPL
MYAPP_REPL=1 ./script/myapp_server.pl # Hit an action ... 42 at lib/MyApp/Controller/Foo.pm line 8. # instead of exiting, you get a REPL! Trace begun at lib/MyApp/Controller/Foo.pm line 8 MyApp::Controller::Foo::bar('MyApp::Controller::Foo=HASH(0xc9fe20)', 'MyApp=HASH(0xcea6a4)') called at ... ... # Many more lines of stack trace $ $c MyApp=HASH(0xcea6ec) $ $c->req->uri http://localhost/foo/bar $
Options like warn or nodie can be passed to Carp::REPL by putting them, seperated by commas, into the environment variable:
warn
nodie
MYAPP_REPL=warn,nodie ./script/myapp_server.pl
Carp::REPL uses Devel::REPL for the shell, so direct any questions how how to use or customize the repl at that module.
Carp::REPL
Devel::REPL
Tomas Doran <bobtfish@bobtfish.net> Florian Ragwitz <rafl@debian.org> Ash Berlin <ash@cpan.org>
This software is copyright (c) 2009 by Florian Ragwitz.
This is free software; you can redistribute it and/or modify it under the same terms as the Perl 5 programming language system itself.
To install CatalystX::REPL, copy and paste the appropriate command in to your terminal.
cpanm
cpanm CatalystX::REPL
CPAN shell
perl -MCPAN -e shell install CatalystX::REPL
For more information on module installation, please visit the detailed CPAN module installation guide.