---
name: "Plack::App::Cascade"
section: "3pm"
platform: "linux"
package: "libplack-perl"
version: "1.0051-1"
release: "Debian 13 (Trixie)"
platforms: ["linux"]
url: "https://new.carta.tech/Plack::App::Cascade"
---

# Plack::App::Cascade(3pm)

Cascadable compound application

## NAME

Plack::App::Cascade - Cascadable compound application

## SYNOPSIS

```
  use Plack::App::Cascade;
  use Plack::App::URLMap;
  use Plack::App::File;
  # Serve static files from multiple search paths
  my $cascade = Plack::App::Cascade->new;
  $cascade->add( Plack::App::File->new(root => "/www/example.com/foo")->to_app );
  $cascade->add( Plack::App::File->new(root => "/www/example.com/bar")->to_app );
  my $app = Plack::App::URLMap->new;
  $app->map("/static", $cascade);
  $app->to_app;
```

## DESCRIPTION

Plack::App::Cascade is a Plack middleware component that compounds several apps and tries them to return the first response that is not 404.

## METHODS

- new

  ```
    $app = Plack::App::Cascade->new(apps => [ $app1, $app2 ]);
  ```

  Creates a new Cascade application.

- add

  ```
    $app->add($app1);
    $app->add($app2, $app3);
  ```

  Appends a new application to the list of apps to try. You can pass the multiple apps to the one `"add"` call.

- catch

  ```
    $app->catch([ 403, 404 ]);
  ```

  Sets which error codes to catch and process onwards. Defaults to `404`.

## AUTHOR

Tatsuhiko Miyagawa

## SEE ALSO

Plack::App::URLMap Rack::Cascade
