perlでの改行コード処理

Javascriptで外部テキストを表示する
プログラムを開発中に改行が途中に入ってしまって
Javascriptが表示されませんでした。

perlでは改行コードを除去する命令に
Chomp命令があります。
すべてUNIX系で処理されれば問題ないのですが
Windowsなど他の処理系が入ると正常に処理されません。

まず改行コードと呼ばれるのは
LF(改行、0x0A)
CR(復帰、0x0D)
の二つがあります。
UNIX系ではLFのみ
Windows、MACなどではCR,LFで改行になります。

UNIXやLINUX系の処理系では改行コードはLFのみで
Windows系の処理系のテキストはCR,LFがあります。
Chomp命令はLFのみ除去してCRが残ってしまうので
スクリプトが動作しませんでした。

対処方として
¥nの改行コードと¥rも除去すると良いでしょう

サンプル
$dat =~ s/\n//g;
$dat =~ s/\r//g;

スポンサーリンク