chomp()関数はあまり使わないほうがいい
Perlの話になります。
改行コードを取り除いてくれる便利な関数chomp(チョンプ)というものがありますが、この改行コードというのが実行環境に依存する形になります。
どういうことかと申しますと、Windows環境ならCRLF(\r\n)が改行文字になりますし、Linux環境ならLF(\n)が改行文字になります。
Cygwinのような環境でPerlコードを書いていると、改行コードがまちまちであることが往々にしてあります。そのような時は、chomp()を使うのではなく正規表現で改行コードを取り除くほうが安全です。
chomp($line); # こう書くのではなく
$line =~ s/[\r\n]+\z//; # こう書く
ちなみに...
\z は、行末。
[\r\n]+は、CRもしくはLFからなる一文字以上の集合。
s/変換元/変換先/ によって、どちらの環境の改行文字であっても、行末手前の改行コードを取り除いてくれるわけです。