一个平台方面的小问题

一个平台方面的小问题

#!/usr/bin/perl


open(LOG,"log.txt");
while(getc(LOG)){
    print "  ";
    print tell LOG;
    print "\n";
}


其中log.txt文件如下:
11
22
33
44

在windos和linux运行结果不一样:
whdows:
D:\log>perl log.pl
  1
  2
  4
  5
  6
  8
  9
  10
  12
  13
  14
  16

linux:
[root@smsct tmp]# perl 1.pl
  1
  2
  3
  4
  5
  6
  7
  8
  9
  10
  11
  12


原因是换行方式不一样,/r/n  /n
不过对windows下的输出还是不理解??

明白了


QUOTE:
原帖由 azhoulinux 于 2007-12-3 12:08 发表
明白了

分享一下
是什么原因哪?
程序改成这样:
#!/usr/bin/perl


open(LOG,"log.txt");
    print tell LOG;
while(getc(LOG)){
    print "  ";
    print tell LOG;
    print "\n";
}
在windows下输出
  0
  1
  2
  4
  5
  6
  8
  9
  10
  12
  13
  14
  16
可以看出其规律,
三个连续,中间空一数字,因为\r\n占据了两个字符,而getc(FH)作为一个字符读取