Skip to content


Subversion checkout URL

You can clone with
Download ZIP
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
Jump to Line
Something went wrong with that request. Please try again.