NAME Dancer2::Plugin::ControllerAutoload - Autoload controllers SYNOPSIS When we "use" the plugin in MyApp.pm it'll load all the controllers under the "Controller" directory, so you don't have to write one "use $controller" in MyApp.pm for each controller. # MyApp.pm package MyApp; use Dancer2; use Dancer2::Plugin::ControllerAutoload; # MyApp/Controller/Users.pm package MyApp::Controller::Users; use Dancer2 appname => 'MyApp'; # MyApp/Controller/Users/Thoughts.pm package MyApp::Controller::Users::Thoughts; use Dancer2 appname => 'MyApp'; DESCRIPTION If you have these three controllers # MyApp/Controller/Users.pm package MyApp::Controller::Users; use Dancer2 appname => 'MyApp'; # MyApp/Controller/Users/Thoughts.pm package MyApp::Controller::Users::Thoughts; use Dancer2 appname => 'MyApp'; # MyApp/Controller/Services.pm package MyApp::Controller::Services; use Dancer2 appname => 'MyApp'; you'd have to load each with an "use" # MyApp.pm package MyApp; use Dancer2; use MyApp::Controller::Users; use MyApp::Controller::Users::Thoughts; use MyApp::Controller::Services; This plugin simplifies this process. When you "use" the plugin, all controllers will be loaded. # MyApp.pm package MyApp; use Dancer2; use Dancer2::Plugin::ControllerAutoload; A controller will be by default identified as such if it is under the "Controller" directory. But that's configurable. If your controller directory is called "Contr": # in a config or environment file plugins: ControllerAutoload: controller_dir: Contr AUTHOR Gil Magno, "" BUGS Please report any bugs or feature requests to "bug-dancer2-plugin-controllerautoload at rt.cpan.org", or through the web interface at . I will be notified, and then you'll automatically be notified of progress on your bug as I make changes. Also you can use github: . ACKNOWLEDGEMENTS Angel Leyva, José Biskofski, Natanael Lizama, Uriel Lizama LICENSE AND COPYRIGHT This software is Copyright (c) 2021 by Gil Magno. This is free software, licensed under: The Artistic License 2.0 (GPL Compatible)