Multiple problems here: - There are several "private" subroutines (starting with underscore) between the POD and the actual checkauth subroutine, so if you search for "sub checkauth" you might miss that the POD is actually there (I did). - The example of how to use the sub is: ($userid, $cookie, $sessionID) = &checkauth($query, $noauth, $flagsrequired, $type); but the sub is actually looking for more possible arguments: 793 my $authnotrequired = shift; 794 my $flagsrequired = shift; 795 my $type = shift; 796 my $emailaddress = shift; 797 my $template_name = shift; - The POD says "The login page is provided using a HTML::Template". As far as I know that would now be TT, HTML::Template.