改行コードについて

っていうのは知っていたがPerlでやC言語で使われる"\n"は改行コードとしか理解しておらず,
"\r"って復帰文字とかキャリッジリターンって呼ばれてるだけで何のためのコードか知らなかった。
今日CGIをいじっていて


$line =~ s/\n/<br>/;
$line =~ s/\r/<br>/;
と書いていたが変換結果がなにかおかしい。<br>が2つできてしまう。
どうやら="\n"、="\r"ということらしい。
長年のナゾがようやく解けました。