Tue Sep 12 03:32:28 UTC 2023 CGI::Tiny & Dispatch::Fu - nearly a perfect match -- CGI::Tiny is a very nice, Perlish way to construct CGI scripts these days. It is perfectly suited as a replacement to CGI.pm and is quite at home in a shared hosting environment. Here's the example from the POD [1] on metacpan: use CGI::Tiny; cgi { my $cgi = $_; # set up error handling on $cgi # inspect request data via $cgi # set response headers if needed via $cgi # render response with $cgi->render or $cgi->render_chunk }; I recently coupled this with my new module Dispatch::Fu [2], and it worked exceedingly well. It is a darn pleasure to consider from a distance, if I do say so myself: use CGI::Tiny; use Dispatch::Fu; cgi { my $cgi = $_; dispatch { my $cgi = shift; if (defined $cgi->param('fribble')) { return 'fribble'; } return 'default'; }, $cgi, on fribble => sub { do_fribble($cgi) }, on default => sub { do_default($cgi) }; #<~ last must end with a semi-colon }; sub fribble { my $cgi = shift; # application/json;charset=UTF-8 $cgi->render(json => { msg => 'fribble has left the building' }); } sub default { # text/html;charset=$charset $cgi = $cgi->render(html => 'default

HI!!

'); } As you may be able to see, this code is able to scale very nicely as different display needs are added. Enjoy! References: [1] https://metacpan.org/pod/CGI::Tiny [2] https://metacpan.org/pod/Dispatch::Fu This article now appears online the big bloated WWW at: https://blogs.perl.org/users/oodler_577/2023/09/cgitiny-dispatchfu---nearly-a-perfect-match.html