ошибка при генерации ответа от PerlInputFilterHandler - PullRequest
0 голосов
/ 06 декабря 2010

У меня только один фильтр в теге httpd.conf:

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

Тест является PerlInputFilterHandler.

Если в этом фильтре есть следующий код:

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;

Он генерирует ответ - другими словами, он посылает "Добро пожаловать !!!" в браузер.

Однако, если у меня следующий код (разрешает комментированный код):

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;

Это не работает. "Добро пожаловать !!!" не идет в браузер - '404' делает.

Можете ли вы предложить что-то здесь?

Большое спасибо!

1 Ответ

0 голосов
/ 06 декабря 2010

Вы пропускаете use warnings; в своем коде - введите это, и вы получите больше информации о сбойном коде в вашем журнале ошибок Очевидно, что что-то о чтении входного буфера не работает.

...