---
name: "Dancer2::Core::Dispatcher"
section: "3pm"
platform: "linux"
package: "libdancer2-perl"
version: "1.1.2+dfsg-1"
release: "Debian 13 (Trixie)"
platforms: ["linux"]
url: "https://new.carta.tech/Dancer2::Core::Dispatcher"
---

# Dancer2::Core::Dispatcher(3pm)

Class for dispatching request to the appropriate route handler

## NAME

Dancer2::Core::Dispatcher - Class for dispatching request to the appropriate route handler

## VERSION

version 1.1.2

## SYNOPSIS

```
    use Dancer2::Core::Dispatcher;
    # Create an instance of dispatcher
    my $dispatcher = Dancer2::Core::Dispatcher->new( apps => [$app] );
    # Dispatch a request
    my $resp = $dispatcher->dispatch($env)->to_psgi;
    # Capture internal error of a response (if any) after a dispatch
    $dispatcher->response_internal_error($app, $error);
    # Capture response not found for an application the after dispatch
    $dispatcher->response_not_found($env);
```

## ATTRIBUTES

### apps

The apps is an array reference to Dancer2::Core::App.

### default\_content\_type

The default\_content\_type is a string which represents the context of the request. This attribute is read-only.

## METHODS

### dispatch

The `"dispatch"` method accepts the list of applications, hash reference for the **env** attribute of Dancer2::Core::Request and optionally the request object and an env as input arguments.

`"dispatch"` returns a response object of Dancer2::Core::Response.

Any before hook and matched route code is wrapped to allow DSL keywords such as forward and redirect to short-circuit remaining code, returning across multiple stack frames without having to throw an exception.

### response\_internal\_error

The `"response_internal_error"` takes as input the list of applications and a variable error and returns an object of Dancer2::Core::Error.

### response\_not\_found

The `"response_not_found"` consumes as input the list of applications and an object of type Dancer2::Core::App and returns an object Dancer2::Core::Error.

## AUTHOR

Dancer Core Developers

## COPYRIGHT AND LICENSE

This software is copyright (c) 2024 by Alexis Sukrieh.

This is free software; you can redistribute it and/or modify it under the same terms as the Perl 5 programming language system itself.
