I suggested to use one of the CGI's because not everyone wants to have to learn an entirely new framework to do some simple form processing. If all I need is param() and header(), there is no way I am using Dancer.
Well,the OP BatBytes doesn't know about CGI.pm or how to use CGI.pm or that all he "needs" is header()/param()
CGI.pm has many caveats and many common pitfalls that everyone has been tripping over since before CGI.pm was called CGI.pm
I'm the first to defend CGI.pm (I've even sent patches more than once), but I don't pretend like its easy to learn for beginners or that its convenient -- its work
CGI.pm documentation is a very poor place to get a foothold on "the internet", its got centuries of old interfaces...
Ovid's tutorial is great for those reading old boooks who need convincing to stop reinventing CGI.pm, but it wasn't a great place to start even at the time of its writing (its ok/good), after six decadeds (in computer time, 6 years) of admonishing wheel-reinventors to just use CGI.pm; We're all grateful to Ovid for writing it so well that we don't have to keep rewriting it poorly
The OP probably won't encounter any issues with using implementations of CGI::Lite/CGI::Minimal , but they exist because those modules aren't as well maintained as CGI.pm, CGI.pm gets more attention
If you have a choice between learning about CGI.pm (or clones), and learning about Dancer/Mojolicious, never choose CGI.pm, don't start in the past
If you already know your way around CGI.pm, guess what, you don't have to learn anything new either, both Dancer and Mojolicious give you a param() and a headers(), and you can keep doing what you were doing already ;)