in reply to Perl Mason & Apache: getting Apache2::Const to work

Don't return a literal 404. The return from a PerlResponseHandler (PerlHandler is an alias and should work) is supposed to be a constant that the apache server understands, so it should be Apache2::Const::NOT_FOUND. What you have for .mas files looks fine. Is it not working for you?
  • Comment on Re: Perl Mason & Apache: getting Apache2::Const to work

Replies are listed 'Best First'.
Re^2: Perl Mason & Apache: getting Apache2::Const to work
by jfroebe (Parson) on Sep 11, 2006 at 20:55 UTC

    Thanks :)

    The subroutine for the .mas files actually fails with the following error message:

    Argument "Apache2::Const::NOT_FOUND" isn't numeric.

    Throwing a sprintf() around it won't work because of the limited parsing available of the perl code in the apache config file. :( The Apache2::Const::NOT_FOUND is the number 404 so returning either one should result in the same way.

    #!/usr/bin/perl use strict; use warnings; use Apache2::Const; printf "%d\n", Apache2::Const::NOT_FOUND;

    Results in:

    404

    Jason L. Froebe

    Team Sybase member

    No one has seen what you have seen, and until that happens, we're all going to think that you're nuts. - Jack O'Neil, Stargate SG-1

      It is 404 now, but that's subject to change at any time in any future apache release, so don't hardcode 404.

      I think you need to add this before using the constant:

      use Apache2::Const -compile => qw(NOT_FOUND);

        Actually, Apache has nothing to do what the error codes are but I get your point :)

        Jason L. Froebe

        Team Sybase member

        No one has seen what you have seen, and until that happens, we're all going to think that you're nuts. - Jack O'Neil, Stargate SG-1