| ModPerl-VersionUtil documentation | Contained in the ModPerl-VersionUtil distribution. |
ModPerl::VersionUtil - Makes it easier to investigate your mod_perl version.
use ModPerl::VersionUtil;
if (ModPerl::VersionUtil->is_mp) {
print "It's running under mod_perl.";
print "mod_perl version: " . ModPerl::VersionUtil->mp_version_string;
}
if (ModPerl::VersionUtil->is_mp2) {
require Apache2 ();
require Apache2::RequestRec();
require Apache2::RequestIO ();
} elsif (ModPerl::VersionUtil->is_mp19) {
require Apache2;
require Apache::RequestRec();
require Apache::RequestIO ();
} elsif (ModPerl::VersionUtil->is_mp1) {
require Apache;
}
This module helps you to investigate your mod_perl version easily.
Returns true if your application is running under mod_perl.
Returns true if your mod_perl version is 1.0.
Returns true if your mod_perl version is 1.9 which is incompatible with 2.0.
Returns true if your mod_perl version is 2.0 or higher.
Returns your mod_perl version as number. (e.g. '1.99920')
Returns your mod_perl version as string. (e.g. '1.999.20')
Craig Manley <CMANLEY@cpan.org> gave me a code to handle an external scripts correctly.
Naoya Ito, <naoya@bloghackers.net>
Some codes are borrowed from the Catalyst web application framework which can handle any versions of mod_perl elegantly.
This library is free software; you can redistribute it and/or modify it under the same terms as Perl itself.
| ModPerl-VersionUtil documentation | Contained in the ModPerl-VersionUtil distribution. |
#$Id: VersionUtil.pm,v 1.3 2006/01/17 01:36:51 naoya Exp $ package ModPerl::VersionUtil; use strict; use warnings; use base qw/Class::Data::Inheritable/; our $VERSION = '0.03'; BEGIN { __PACKAGE__->mk_classdata($_) for qw/mp_version mp_version_string is_mp is_mp1 is_mp19 is_mp2/; if (my $version = $ENV{MOD_PERL}) { # Note: This environment variable could be set in an external script called from mod_perl, # so don't presume we are in mod_perl just yet. ($version) = $version =~ /^\S+\/(\d+(?:[\.\_]\d+)+)/; __PACKAGE__->mp_version_string($version); $version =~ s/_//g; $version =~ s/(\.[^.]+)\./$1/g; __PACKAGE__->mp_version($version); if ($ENV{MOD_PERL_API_VERSION} && $ENV{MOD_PERL_API_VERSION} == 2 && exists $INC{'Apache2/RequestRec.pm'}) { __PACKAGE__->is_mp(1); __PACKAGE__->is_mp2(1) } elsif (exists $INC{'Apache.pm'}) { __PACKAGE__->is_mp(1); if ( $version >= 1.9901 ) { __PACKAGE__->is_mp19(1); } elsif ( $version >= 1.24 ) { __PACKAGE__->is_mp1(1); } } } } 1; __END__