2010-12-06 5 views
0

Ich habe nur einen Filter in meinem Standort-Tag von httpd.conf:Fehler bei der Erzeugung Antwort von PerlInputFilterHandler

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

Test ist ein PerlInputFilterHandler.

Wenn ich in diesem Filter folgenden Code haben:

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; 

Es erzeugt Antwort - in anderen Worten, es sendet "welcome !!!" zum Browser.

Allerdings, wenn ich habe folgenden Code (ermöglicht kommentierten Code):

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; 

Dies funktioniert nicht. Das Willkommenheißen!!!" geht nicht zum Browser - 404 tut das.

Können Sie hier etwas vorschlagen?

Vielen Dank!

+0

Ist es, dass Sie PerlInputFilterHandler MyApache2 :: Test in der Position Zeilengruppe haben, aber Ihr Paket ist eigentlich Paket MyApache2 :: Test10; ? –

Antwort

0

Sie geben aus Ihrem Code aus - fügen Sie das ein und Sie erhalten weitere Informationen über fehlerhaften Code in Ihrem Fehlerprotokoll. Offensichtlich funktioniert etwas über das Lesen des Eingabepuffers nicht.

+0

Auch wenn ich strenge verwenden; mit gebrauchswarnungen; Ich bekomme dasselbe Protokoll, also hilft es nicht. Danke trotzdem! –

Verwandte Themen