My app needs to connect to multiple databases (currently: 1 PostgreSQL + 2 Redis), and I would like it to do this as soon as possible after startup. However, due to Dancer's cached-coderef design, it is not trivial to do this immediately after forking (as far as I know). My current solution is this: sub init_connections { $dbh = connect_to_dbh(); $redis_0 = connect_to_redis_0(); $redis_1 = connect_to_redis_1(); return 1; } sub before { $connected ||= init_connections; } This works fine, but if there are any connection problems, I don't find out immediately. So I tried coding the app to connect to itself, like this: sub init_connections { ... connect_to_self(); return 1; } But of course, my first experiment resulted in a loop! I wonder if I am approaching this the right way. Before I spend much more time on this, does anyone have any thoughts / experience on this problem? -- Alex