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

# Plack::Middleware::Refresh(3pm)

Refresh all modules in %INC

## NAME

Plack::Middleware::Refresh - Refresh all modules in %INC

## SYNOPSIS

```
  enable "Refresh", cooldown => 3;
  $app;
```

## DESCRIPTION

This is *yet another* approach to refresh modules in `%INC` during the development cycle, without the need to have a forking process to watch for filesystem updates. This middleware, in a request time, compares the last refresh time and the current time and if the difference is bigger than *cooldown* seconds which defaults to 10, call Module::Refresh to reload all Perl modules in `%INC` if the files have been modified.

Note that this only reloads modules and not other files such as templates.

This middleware is quite similar to what Rack::Reoader does. If you have issues with this reloading technique, for instance when you have in-file templates that needs to be recompiled, or Moose classes that has `"make_immutable"`, take a look at plackup's default -r option or Plack::Loader::Shotgun instead.

## AUTHOR

Tatsuhiko Miyagawa

## SEE ALSO

Module::Refresh Rack::Reloader
