On Thu, Feb 25, 2010 at 6:51 PM, P Kishor <punk.k...@gmail.com> wrote: > So, my question is thus -- how is Dancer different from CGI::App, and > why should I use the latter instead of the former? I asked this not > lightly because I have many years of experience invested in C::A, but > Dancer truly shows how apps should be.
I haven't used Dancer, but I can tell you a few things about the example code in the docs that rub me the wrong way. Here's a small piece: get '/hello/:name' => sub { return "Why, hello there " . params->{name}; }; Note that get() is imported. I hope you never want a method called get() in code that uses Dancer (or set(), since that's used for something else). In fact a large number of keywords are imported, as you'll see if you look at @EXPORT in the Dancer.pm source. What's the syntax here? It doesn't really look like valid perl, does it? It's really doing this: get($url, $sub_ref); So, it's kind of sneaky, which is another thing I don't like to see in code. The params thing (it's a function that reads the current request from a global) is also sneaky for no good reason IMO. I don't think I'd enjoy writing a lot of code in sub refs either, especially not when trying to run a profiler or the debugger on them. I suppose you can get around that with a CGI::App-style construction like this: get('process_form' => \&process_form); sub process_form { [...] } OTOH, there are definitely some nice-looking things about this package. It has a good amount of docs for a new distribution, a lot of tests, and the code style internally looks good and easy to follow. It's really just the syntax and the namespace pollution that bother me. - Perrin ##### CGI::Application community mailing list ################ ## ## ## To unsubscribe, or change your message delivery options, ## ## visit: http://www.erlbaum.net/mailman/listinfo/cgiapp ## ## ## ## Web archive: http://www.erlbaum.net/pipermail/cgiapp/ ## ## Wiki: http://cgiapp.erlbaum.net/ ## ## ## ################################################################