История изменений
Исправление outtaspace, (текущая версия) :
CGI.pm перестал использовать когда нашел эпичный баг с аплоадом больших файлов - модуль портил их. Во всем остальном этот модуль устраивал, даже тяжеловесность и тормознутость не напрягала.
Заменил написал адаптер на базе Mojolicious, а точнее Mojo::Message::Request. Могу себе позволить, ибо CGI.pm для сурового легаси, а Mojolicious использую в новых проектах.
Если хэдеры можно еще и так напечатать
Мои коллеги так и поступали :)
парсить параметры того же GET запроса вручную
# так выглядит адаптер, функции как в каноничном CGI.pm
use MojoCGI qw(method param upload remote_user remote_host);
Вот как выглядит главная часть MojoCGI:
BEGIN {
$ENV{'MOJO_MAX_MESSAGE_SIZE'} = 10485760 * 50; # 10 Mb * 50
};
sub do_cgi_request {
binmode STDIN, ':raw';
my $req = Mojo::Message::Request->new();
$req = $req->parse(\%ENV);
until ($req->is_finished) {
last unless my $read = STDIN->read(my $buffer, 131072, 0);
$req->parse($buffer);
}
return $req;
}
Исходная версия outtaspace, :
CGI.pm перестал использовать когда нашел эпичный баг с аплоадом больших файлов - подуль портил их. Во всем остальном этот модуль устраивал, даже тяжеловесность и тормознутость не напрягала.
Заменил написал адаптер на базе Mojolicious, а точнее Mojo::Message::Request. Могу себе позволить, ибо CGI.pm для сурового легаси, а Mojolicious использую в новых проектах.
Если хэдеры можно еще и так напечатать
Мои коллеги так и поступали :)
парсить параметры того же GET запроса вручную
# так выглядит адаптер, функции как в каноничном CGI.pm
use MojoCGI qw(method param upload remote_user remote_host);
Вот как выглядит главная часть MojoCGI:
BEGIN {
$ENV{'MOJO_MAX_MESSAGE_SIZE'} = 10485760 * 50; # 10 Mb * 50
};
sub do_cgi_request {
binmode STDIN, ':raw';
my $req = Mojo::Message::Request->new();
$req = $req->parse(\%ENV);
until ($req->is_finished) {
last unless my $read = STDIN->read(my $buffer, 131072, 0);
$req->parse($buffer);
}
return $req;
}