필링 (Perling) 이래로 몇 달이 지났지 만, 왜 이런 일이 벌어지는 지 완전히 궁금해합니다 ...왜 Perl은 내 인쇄 결과에 영향을 미칩니 까?
나는 OSX를 사용합니다. 각 라인을 읽은 후
가 나는 파일을 읽고 있어요 때문에XXX, 20120803, 0100, KWH, 0.2809, A, YYY
같은 표준 출력 라인에
08/03/2011 01:00 PDT,1.11
같은 파일에 라인을 변환하기 위해 노력하고있어, 나는 chomp
원하는 그러나, 내가 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
공지있다. $|=1;
자동 플러시를 추가했지만 여기에서 무엇을해야할지 모르겠습니다.
생각하십니까? 그리고 미리 감사드립니다 ....
어디에서 데이터 파일을 가져 옵니까? 홀수 줄 끝 문자가 가능합니까? –
유닉스에서 Windows 파일을 다시 읽는 것이 일반적인 문제입니다. 이전 토론 참조 : http://stackoverflow.com/questions/881779/neatest-way-to-remove-linebreaks-in-perl http://stackoverflow.com/questions/1836217/perl-or-something-else-m -problem http://stackoverflow.com/questions/7534591/cr-vs-lf-perl-parsing – daxim