Я использую установку Apache и mod_perl по умолчанию для Ubuntu 16.04.1 LTS, я также воспроизвел это с помощью JSON :: XS по умолчанию и я обновил последнее из CPAN JSON-XS-3,02.JSON :: XS под mod_perl не работает с запросами POST
Код ниже работает во всех случаях, если я не использую mod_perl.
Сценарий и html ниже работают при использовании perl через mod_cgi с запросами POST и GET.
Если я использую mod_perl, и я использую POST (как в предоставленном html), он терпит неудачу, «Hello» не печатает, и я получаю следующую ошибку в файле журнала Apache.
Использование: JSON :: XS :: new (класс).
Если я передаю один и тот же параметр (ы) с помощью метода GET, сценарий отлично работает.
test2.pl
#!/usr/bin/perl
use strict;
use warnings;
use CGI;
use JSON::XS;
my $q = new CGI();
print $q->header(-type => 'text/plain');
my $action = $q->param('a');
my $json_str = '{"foo":"bar"}';
my $pscalar = JSON::XS->new->utf8->decode($json_str);
print "Hello";
exit 1;
HTML для вызова выше (с именем test2.pl на сервере)
<html>
<body>
<form action="test2.pl" method="POST">
<input type="text" name="a"/>
<button type="submit">
</form>
</body>
</html>
Нет, это делает то же самое. – Severun