なひです.週末は1.3系のsignalと戯れているうちに終わってしまいました.

> From: Yukihiro Matsumoto [mailto:matz / ev.netlab.co.jp]
> Sent: Monday, March 29, 1999 12:15 AM

> |ついでにヒアドキュメント中の行末がCRLFだと
> |どちらもchompで削られて(LFだけ削って欲しい...)
> |データが壊れちゃうこと(CSVのレコード区切りをCRLFに設定している),
> |を発見して,ああどこを直せばいいのかしら,なんて再び探していて...
> 
> 1.3系ではヒアドキュメントに限らずスクリプトの行末はLFに正規
> 化してます.まずかったかしら?

新仕様のままでいいと思います.

なひのCSVパーザ
http://www.jin.gr.jp/~nahi/Ruby/ruby.shtml#CSV
のサンプルでは,

myStr =<<'EOM'
foo,"""foo""","foo,bar","""""",,^M,
,"^M
"^M
EOM

こんなことして,解析元データを与えてます(^Mは実際は0x0d,CRです).
1.2系では問題なかったのですが,
1.3系で問題になるのは2行目末尾のCRで,これがCRLF→LFと正規化され,
次にchompされ,最後にLFが追加され,
ヒアドキュメントとしてmyStrに追加されます.
これはCSV的には"CRLF"というデータなのですが,
"LF"になってしまいます.

ただこれは,今回のような改行sensitiveなデータを放り込むのに
ヒアドキュメントを使うのが悪いのであって,
「注意してね」ということでいいと思います.
スクリプト全体が「行末=CRLF」で書かれていた時,
ヒアドキュメントの中だけ特別扱いするのは変ですし.^^;