[Dancer-users] how to run function from app from command line?

David Precious davidp at preshweb.co.uk
Sun Jul 3 13:15:52 CEST 2011

On Sun, 2011-07-03 at 10:25 +0600, Nick Knutov wrote:
> Thanks! Look like exactly what I need.
> btw, is there any way to run 'before' in such scripts?

Well, 'before' handlers are supposed to run before a request; given that
you're looking at a script where there is no request, I think them not
running is correct and expected.

> I changed
> before sub {...}
> to
> sub _init {...}
> before sub {_init()};  # in main app
> app::_init(); # in Dancer ':script' app
> but this is ugly.

It'll do the job, even if a little ugly.

Personally, if it's code that should run on startup before any requests
are processed, I'd just put it in the script as-is, rather than in a
before handler - e.g.

use Dancer qw(:script);

# my initialisation code goes here

# now declare routes

David Precious  ("bigpresh")

   "Programming is like sex. One mistake and you have to support
   it for the rest of your life". (Michael Sinz)

More information about the Dancer-users mailing list