Fetching contributors…
Cannot retrieve contributors at this time
113 lines (73 sloc) 2.62 KB
The easiest way to write a webapp with Perl
=== ABOUT ===
That project intends to become a port of Ruby's Sinatra
framework: a framework for building web application with
minimal-effort in mind. The user should be able to define a
webapp with very few lines of codes.
=== NEWS ===
Dancer's development moves very fast, to stay tuned follow
sukria on Twitter: or his blog
=== EXAMPLE ===
To create a new Dancer application, use the helper script "dancer" provided
with this distribution:
$ dancer -a mywebapp
+ mywebapp
+ mywebapp/config.yml
+ mywebapp/views
+ mywebapp/views/layouts
You have then a new Dancer application in 'mywebapp'.
Here is an example of a webapp built with Dancer:
use Dancer;
get '/' => sub {
"Hello There!"
get '/hello/:name' => sub {
"Hey ".params->{name}.", how are you?";
post '/new' => sub {
"creating new entry: ".params->{name};
When running this script, a webserver is running and ready to serve:
$ perl ./
>> Listening on
== Entering the development dance floor ...
Then it's possible to access any route defined in the script:
$ curl http://localhost:3000/
Hello There!
Dancer depends on the following modules
- HTTP::Server::Simple::PSGI
- HTTP::Body
- Exception::Class
Optional modules may be needed if you want to use soem
features (but are not required for a basic usage).
Dependency-checks are performed at runtime.
Most common modules you may want are:
- Template (for Template::Toolkit support)
- YAML (for configuration files)
- Plack (if you want to deploy your application with
This is a work in progress.
Dancer supports PSGI/Plack, to run a Dancer app with PSGI/Plack
just bootstrap your application with the helper script
`dancer' like the following:
$ dancer -a MyWebApp
You'll find a file in there called `app.psgi', use this file
to configure your PSGI environment, as explained in the
revelant documentation of your PSGI server.
For instance, with plackup, just do the following:
$ plackup -a app.psgi
=== WEBSITE ===
For more details about the project, checkout the official website: or checkout the documentation at
=== CONTACT ===
You can reach the development team on IRC:,
chan #dancer