После обновления до LWP 6.04 со старой (5.8x?) Версии я заметил, что некоторый код, используемый в распределенном приложении, которое работало вечно, начал ломаться. Я проследил это до изменения в обработке \ n в POST.
На клиенте:
$post_data{'good'} = qq(This is a text line);
$post_data{'bad'} = qq(This is a first line\nThis is a second line);
my $ua = LWP::UserAgent->new();
my $response = $ua->post( $url, \%post_data );
return undef if (!defined $response);
На сервере:
my $good = $q->param('good');
my $bad = $q->param('bad');
После запуска клиента сервер получает следующее:
$ хорошо на стороне сервера, как и ожидалось, получилось qq (это текстовая строка).
Однако $ bad в конечном итоге становится qq (это первая строка \ r \ nЭто вторая строка).
Есть ли способ избежать этой "полезной" замены без переписывания и повторного развертывания огромного количества кода, который использовал предыдущее поведение LWP :: UserAgent?