mod_perl nie pasuje do Carp.pm i Cookie.pm
Paweł Gołaszewski
blues w pld-linux.org
Wto, 7 Cze 2005, 10:41:06 CEST
Jest problem z nowym mod_perl-em... Chodzi o to, że aplikacje, które
używają sobie Carp.pm mają poważny problem, gdyż ten moduł nie jest
dostosowany do nowego mod_perl-a.
if ($mod_perl::VERSION >= 1.99) {
$mod_perl = 2;
require Apache::RequestRec;
require Apache::RequestIO;
require Apache::RequestUtil;
require APR::Pool;
require ModPerl::Util;
require Apache::Response;
}
my $r = Apache->request;
zmieniłem sobie na:
if ($mod_perl::VERSION >= 1.99) {
$mod_perl = 2;
require Apache2::RequestRec;
require Apache2::RequestIO;
require Apache2::RequestUtil;
require APR::Pool;
require ModPerl::Util;
require Apache2::Response;
}
my $r = Apache2::RequestUtil->request;
Druga rzecz, która musi być zmieniona to w CGI/Cookie.pm:
s/Apache::RequestUtil;/Apache2::RequestUtil;/
Patch na to:
--- ./Cookie.pm.org 2005-02-19 11:41:46.000000000 +0100
+++ ./Cookie.pm 2005-06-07 10:33:46.000000000 +0200
@@ -27,7 +27,7 @@
if (defined $mod_perl::VERSION) {
if ($mod_perl::VERSION >= 1.99) {
$MOD_PERL = 2;
- require Apache::RequestUtil;
+ require Apache2::RequestUtil;
} else {
$MOD_PERL = 1;
require Apache;
--- ./Carp.pm.org 2005-06-07 10:36:51.000000000 +0200
+++ ./Carp.pm 2005-06-07 10:32:26.000000000 +0200
@@ -468,14 +468,15 @@
require mod_perl;
if ($mod_perl::VERSION >= 1.99) {
$mod_perl = 2;
- require Apache::RequestRec;
- require Apache::RequestIO;
- require Apache::RequestUtil;
+ require Apache2::RequestRec;
+ require Apache2::RequestIO;
+ require Apache2::RequestUtil;
require APR::Pool;
require ModPerl::Util;
- require Apache::Response;
+ require Apache2::Response;
}
- my $r = Apache->request;
+ #my $r = Apache2->request;
+ my $r = Apache2::RequestUtil->request;
# If bytes have already been sent, then
# we print the message out directly.
# Otherwise we make a custom error
Nie chciałbym w tym grzebać, bo nie za bardzo mam ochotę dotykać rzeczy,
których konstrukcji nie rozumiem (vide: perl.spec). Proszę o dodanie tego,
bo inaczej mod_perl ma poważne wady (to dosyć popularne moduły...).
--
pozdr. Paweł Gołaszewski jid:blues<at>jabber<dot>gda<dot>pl
--------------------------------------------------------------------------
If you think of MS-DOS as mono, and Windows as stereo, then Linux is Dolby
Pro-Logic Surround Sound with Bass Boost and all the music is free.
Więcej informacji o liście dyskusyjnej pld-devel-pl