古い(5.8x?)バージョンからLWP 6.04にアップグレードした後、分散アプリケーションで使用されていたコードが永遠に壊れ始めました。私はそれをPOSTの\ nの処理の変更に追跡しました。予想通りになってしまう、サーバー側のLWP :: UserAgent 6.04、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は$ qとなります(これは最初の行です。\ r \ nこれは2行目です)。
LWP :: UserAgentの以前の動作を利用した膨大な量のコードを書き換えて再デプロイすることなく、この「有用な」置換を避ける方法はありますか?
まあ、アップデートをロールバック以外に解決策はありませんようだコードやRTメッセージを谷に行く後。私は、モジュール、特に広く使われているモジュールのデフォルトの動作を変更すると、変更を明確に文書化せずに既存のコードを破る可能性があることだけを述べることができます。 –