从较旧的(5.8x?)版本升级到 LWP 6.04 后,我注意到在分布式应用程序中使用的一些代码会永远运行开始出现问题。我将其追溯到 POST 中处理 \n 的变化。
在客户端:
$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');
客户端运行后服务器得到以下信息:
正如预期的那样,服务器端的 $good 最终成为 qq(这是一个文本行)。然而,$bad 最终变成了 qq(这是第一行\r\n这是第二行)。
有没有办法避免这种“有用的”替换,而无需重写和重新部署利用 LWP::UserAgent 先前行为的大量代码?