Perling を使い始めてから 2 か月が経ちましたが、なぜこれが起こっているのか完全に行き詰まっています...
問題があれば、私はOSXを使用しています。
次のようなファイル内の行を変換しようとしています
2011 年 8 月 3 日 01:00 PDT、1.11
のような標準出力行に
XXX、20120803、0100、KWH、0.2809、A、YYY
私はファイルを読んでいるので、chomp
各行が読み込まれた後にしたいのですchomp
。私がそうしないchomp
と、印刷はうまくいきます(余分な改行を除いて...)。何が起きてる?
while(<SOURCE>) {
chomp;
my @tokens = split(' |,'); # @tokens now [08/03/2011, 01:00, PDT, 1.11]
my $converted_date = convertDate($tokens[0]);
my $converted_time = convertTime($tokens[1]);
print<<EOF;
$XXX, $converted_date, $converted_time, KWH, $tokens[3], A, YYY
EOF
}
そこにchomp
呼び出しがあると、出力はすべて混同されます。
、A、YYY10803、0100、KWH、1.11
そこに呼び出しがなければ、chomp
少なくとも正しい順序で印刷されますが、余分な新しい行があります:
XXX、20110803、0100、KWH、1.11 、A、YYY
chomp
そこに があると、最初の行の「上にある」改行を上書きするようなものであることに注意してください。自動フラッシュを追加しました$|=1;
が、ここで他に何をすべきかわかりません。
考え?そして、事前に感謝します....