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