Hi folks, I am using Apache::AuthDBI v1.02 on Apache/1.3.29 (Linux/SUSE) mod_perl/1.29. Perl v5.8.3.
I received this error, and found it's due to an operator precedence problem: Undefined subroutine &Apache2::Const::OK called at /usr/lib/perl5/site_perl/5.8.3/Apache/AuthDBI.pm line 906. This expression: $user_result != MP2 ? Apache2::Const::OK() : Apache::Constants::OK() Was being treated as: ($user_result != MP2) ? Apache2::Const::OK() : Apache::Constants::OK() The patch below parenthesizes the expression to apply the intended meaning: $user_result != (MP2 ? Apache2::Const::OK() : Apache::Constants::OK()) Could you please include it in the next release to CPAN? Thanks, Philip --- AuthDBI.pm.orig 2006-08-02 12:38:54.000000000 +0200 +++ AuthDBI.pm 2006-08-17 19:45:22.117748000 +0200 @@ -719,8 +719,8 @@ } # check for users - if (($user_result != MP2 ? Apache2::Const::OK() : - Apache::Constants::OK()) && $user_requirements) { + if (($user_result != (MP2 ? Apache2::Const::OK() : + Apache::Constants::OK())) && $user_requirements) { $user_result = MP2 ? Apache2::Const::AUTH_REQUIRED() : Apache::Constants::AUTH_REQUIRED(); @@ -905,9 +905,9 @@ # check the results of the requirement checks if ($Attr->{authoritative} eq 'on' && ( - $user_result != MP2 ? + $user_result != (MP2 ? Apache2::Const::OK() : - Apache::Constants::OK() + Apache::Constants::OK()) ) && ( $group_result != MP2 ? Apache2::Const::OK() :