OSの影響を考えなくても改行コードを落とす方法〜正規表現

perlには、chopやらchompやら改行を落とす関数がありますが、これらは改行コードを落とすには不十分です。そこで、以下のように正規表現を使って書けば、どんな改行コードでも落とせちゃいます。

$line =~ s/[\r\n]+\z//;

そもそも、なんでchopやchompでは役不足なのか。

改行コードは、CR・LF(2バイト)と、CRのみ(1バイト)もしくはLFのみ(1バイト)の3種類があります。
■chop
行末の1バイトを落とす。つまり、2バイトの改行コードは落とせません。
■chomp
chompを実行しているOSの改行コードを落とす。つまり、chompを実行しているOS以外の改行コードは、落とせません。→unixでchompが書かれているコードを実行すると、windowsの改行コードについては落としてくれません。

chopとchompは万能ではないのです。以上、先輩からの受け売りでした。