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

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

Replies are listed 'Best First'.
Re^3: Perl Mason & Apache: getting Apache2::Const to work
by perrin (Chancellor) on Sep 11, 2006 at 21:30 UTC
    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

        No, you're misunderstanding. The return here is NOT an HTTP status code. It is an internal apache thing. It happens to be 404, but that's just a convenient number the apache devs chose. The HTTP status code is something you set with $r->status, not the return from the sub, and it is Apache::Const::HTTP_NOT_FOUND (which is 404 and you really could just use the number), rather than the one you're using here.