On Fri, May 20, 2011 at 2:57 PM, Nick Knutov <mail@knutov.com> wrote:
Hello all,
what is the best way to do some initialization for some data on the only first run? Something like 'before sub', but it should run only on the first run of the script instance.
Example of use:
our $first; before sub { # if this is the first run of instance # $cache->{statuses} = ... # load some static data from DB
# I can do # _load_cache() unless $first; # $first = 1; # but this is not beautiful }
You don't need the $first in your case: before sub { if (not $cache->{statuses}) { $cache->{statuses} = ...; _load_cache(); } } If you are not running in a CGI environment, then you should be able to just do: use Dancer; # put this in the file scope $cache->{statuses} = ...; _load_cache(); # now declare routes I believe the lines in the file scope will only get run once, running in a persistent environment such as Plack servers or FastCGI. -Naveed Massjouni
-- Best Regards, Nick Knutov http://knutov.com ICQ: 272873706 Voice: +7-904-84-23-130 _______________________________________________ Dancer-users mailing list Dancer-users@perldancer.org http://www.backup-manager.org/cgi-bin/listinfo/dancer-users