Yay to
MidLifeXis for pointing out the problem.
When MyAuthDBI::authen is called then PERL looks to that specific object for the function rather than traversing up the parent tree. MyAuthDBI->authen would call the function but the original Apache::AuthDBI::authen expects $r as the first argument and not $self and so a new set of problems arises.
So the easy solution to this problem is:
package MyAuthDBI;
use base "Apache::AuthDBI";
sub authen {
my ($r) = @_;
Apache::AuthDBI::authen($r);
}
1;
Big props out to
MidLifeXis for noticing this, thanks!