I'm trying to get my head around Dancer2, and am having trouble because it doesn't look entirely like Perl to me. For example: get '/foo/*' => sub { .... What is "get", exactly? I assume it is a function that takes a string and a coderef, and you're taking advantage of Perl's optional parentheses and fat comma to create a Perl-based DSL. The problem is, I can only find examples and tutorial docs, not a reference that outright confirms that, so I'm left with this uneasy feeling that I don't truly understand what's going on here yet. I tried to answer this myself before posting. I thought it might be a package-global function, but there is no "sub get" in Dancer2.pm. I also tried looking for a POD reference page on metacpan that explains this, but it ends up being a fully manual search since the metacpan search engine can't help with a generic term like 'get', and there are ~50 namespace pages to dig through. Another example: context->destroy_session The only way I can think of for that to work without a sigil is for 'context' to be another global (?) function that returns an object reference, rather than be an object reference itself. There is no "context" in Dancer2.pm, so I'm left wondering where it comes from. In one place, the tutorial docs say it is passed in to a "before" handler, while in other places it is assumed that you can just *use* this entity without having one passed into the route handler. I care about this because I'm trying to port a fairly complex app from Apache::ASP to Dancer2, and this app is already broken up into many separate modules. Because of this, the tutorial docs' assumption that I am writing all of my server-side code within the top-level module's route handlers doesn't apply. I'm not going to consolidate dozens of modules of code into this one module, just to solve the namespace problems. That just trades one problem for another. Ideally, I want my top-level module to be as small as possible, doing little more than set up the route handlers, delegating all the real work to other modules. To do that, I need to know where these objects come from, their exact data type, and which package's namespace they live in. Then I'll know how to reference them or pass them around to the modules that do the work in my app.