package MyApp::Controller::App::Reporting; use Moose; use namespace::autoclean; BEGIN { extends "Catalyst::Controller" } sub by_id :Chained("/") :PathPart("reporting") :CaptureArgs(1) { my( $self, $c, $id ) = @_; $c->stash( ohaid => $id ); } sub reporting :Chained("by_id") PathPart("") Args(0) { my( $self, $c ) = @_; $c->response->body("OHAI " . $c->stash->{ohaid}); } __PACKAGE__->meta->make_immutable; __END__ [debug] Loaded Chained actions: .-------------------------------------+--------------------------------------. | Path Spec | Private | +-------------------------------------+--------------------------------------+ | /reporting/* | /app/reporting/by_id (1) | | | => /app/reporting/reporting | '-------------------------------------+--------------------------------------' moo@cow[1148]~>curl http://localhost:3000/reporting/DER OHAI DER