Changes for version 0.26 - 2026-09-15
- ActionRegex patterns containing a hyphen are no longer truncated.
- Multiple file uploads in one request no longer overwrite each other; temporary files are now created with File::Temp.
- Multipart boundaries containing regex metacharacters are handled.
- More than one Set-Cookie header can be sent per response (new header_add method; Cookie->set uses it).
- Query parameters keep '=' inside values and keys are unescaped; the query string is parsed once per request.
- Drogo::Server::PSGI no longer requires the PSGI module, uses PATH_INFO/QUERY_STRING, exposes script_name, and returns a proper response for auto_redirect.
- The die handler is installed only during dispatch instead of when Drogo::Guts is loaded.
- Drogo::Dispatch adds to the caller's @ISA instead of replacing it.
- Mapping keys work with a leading slash in the request path, and mapped dispatches are cached correctly.
- Failures inside an application's error handler return 500 instead of crashing the dispatcher.
- Uncaught exceptions are recorded correctly when a library has disabled the die handler (record_uncaught).
- Drogo::Server::Test supports POST bodies and case-insensitive request headers.
- All modules enable warnings; dead code from Nginx::Simple removed.
- New tests for parameters, multipart, cookies, hooks, mapping, app_path, auto_redirect, error handling and the PSGI backend.
Documentation
Bootstrap a Drogo application
Modules
Lightweight web framework
Dispatching framework for Drogo
Internals for Drogo dispatching
Attributes: Index, Action, ActionMatch, ActionRegex, Path
Shared components used by framework.
Lightweight module loader
Shared methods for server implementations
Directly interface with Nginx using --with-http_perl_module
Implement a Drogo PSGI application.
Bare implementation of a server's methods, for testing.
Provides
in lib/Drogo/Cookie.pm
in lib/Drogo/MultiPart.pm
in lib/Drogo/Request.pm
in lib/Drogo/RequestResponse.pm
in lib/Drogo/Response.pm