Hello. I've found unexpected behavior of modperl handler. If handler return Apache2::Const::HTTP_OK status all is ok. But other HTTP_* status code (tested with Apache2::Const::HTTP_NOT_FOUND; Apache2::Const::HTTP_FORBIDDEN and Apache2::Const::SERVER_ERROR) invoke handler again.
Configuration: <VirtualHost *:80> DocumentRoot "/srv/http/err/htdocs" ServerName err.localhost SetHandler perl-script PerlRequire /srv/http/err/htdocs/Main.pm PerlResponseHandler XYZ::Main </VirtualHost> Module: package XYZ::Main; use strict; use APR::Table; use Apache2::RequestRec (); use Apache2::RequestIO (); use Apache2::Const -compile => qw/:common :http/; use CGI; sub handler{ `echo "call" >>/tmp/inv`; return Apache2::Const::OK; return Apache2::Const::HTTP_OK; return Apache2::Const::HTTP_NOT_FOUND; } 1; Mainly, in some cases I want to show Apache2 default pages (like for HTTP_NOF_FOUND and HTTP_SERVER_ERROR) and don't know right way to implement that. It seems that similar Apache2::Const::HTTP* status code from handler is a good way but now I have to use method-handler technique (https://perl.apache.org/docs/2.0/user/coding/coding.html#Method_Handlers) to avoid second handler invocations. So, whats wrong? Regards, Nick. === Apache/2.2.22 (Unix) DAV/2 PHP/5.4.4 mod_perl/2.0.7 Perl/v5.16.0 Server at err.localhost Port 80Server version: Apache/2.2.22 (Unix)