2010-12-06 50 views
0

J'ai juste un filtre dans ma balise de localisation de httpd.conf:erreur pour générer une réponse de PerlInputFilterHandler

<Location /testproj/A> 
SetHandler modperl 
PerlInputFilterHandler MyApache2::Test 
</Location> 

test est un PerlInputFilterHandler.

Si j'ai code suivant dans ce filtre:

package MyApache2::Test10; 

use strict; 
use Apache2::Const qw(OK); 
use Apache2::Filter(); 
use Apache2::RequestRec(); 
use Apache2::RequestIO(); 

sub handler { 
my $f = shift; 

#my $buf = ''; 
#while($f->read(my $tempbuf, 1024)) { 
# $buf = $tempbuf; 
#} 

my $r = $f->r; 
$r->content_type("text/html\n\n"); 
$r->print("welcome!!!"); 

return OK; 
} 
1; 

Il génère une réponse - en d'autres termes, il envoie « bienvenue !!! » au navigateur.

Toutefois, si j'ai le code suivant (code commenté permet):

package MyApache2::Test10; 

use strict; 
use Apache2::Const qw(OK); 
use Apache2::Filter(); 
use Apache2::RequestRec(); 
use Apache2::RequestIO(); 

sub handler { 
my $f = shift; 

my $buf = ''; 
while($f->read(my $tempbuf, 1024)) { 
    $buf = $tempbuf; 
} 

my $r = $f->r; 
$r->content_type("text/html\n\n"); 
$r->print("welcome!!!"); 

return OK; 
} 

1; 

Cela ne fonctionne pas. Le "bienvenue !!!" ne va pas au navigateur - '404' fait.

Pouvez-vous suggérer quelque chose ici?

Merci beaucoup!

+0

Est-ce que vous avez PerlInputFilterHandler MyApache2 :: Test dans la strophe de l'emplacement, mais votre forfait est forfait en fait MyApache2 :: test10; ? –

Répondre

0

Vous omettez use warnings; de votre code - le mettre dans et vous obtiendrez plus d'informations sur le code à défaut dans votre journal d'erreurs. Clairement quelque chose à propos de la lecture du tampon d'entrée ne fonctionne pas.

+0

Même si je remplace l'utilisation stricte; avec des avertissements d'utilisation; Je reçois le même journal, donc ça n'aide pas. Merci quand même! –