Two modules that seem to still be in obscurity (probably intended) are
CGI::Ex::Auth and
CGI::Ex::App. Both are part of the
CGI::Ex suite of tools. The Auth module can be used to add customizable cookie based authentication to any application, and App is a hook based base-layer to build applications on top of (it is a framework - but not in the same sense that Catalyst is a framework). CGI::Application often doesn't go far enough and Catalyst often goes too far.
For example, if you use CGI::Ex::App as your base layer - then you can add authentication to all of your applications with the following code:
sub require_auth { 1 }
sub get_pass_by_user {
my $self = shift;
my $user = shift;
my $pass = $self->lookup_and_cache_the_pass($user);
return $pass;
}
Using CGI::Ex::Auth alone isn't much more complicated.
my @a=qw(random brilliant braindead); print $a[rand(@a)];