0

古いバージョン (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 になります (これは 1 行目です\r\nこれは 2 行目です)。

LWP::UserAgent の以前の動作を利用した大量のコードを書き直して再展開することなく、この「役立つ」置換を回避する方法はありますか?

4

1 に答える 1

0

https://rt.cpan.org/Public/Bug/Display.html?id=75592

于 2012-03-07T00:30:05.213 に答える