我使用Net :: FTP下载了一个csv文件。当我在文本编辑器或excel中查看此文件时,甚至当我剪切/粘贴时,它都有换行符,如下所示:
000000000G911 | 06
0000000000CDR | 25 | 123
0000000000EGP | 19
当我在Perl中读取文件时,它将整个文本视为一行,如下所示:
000000000G911 | 060000000000CDR | 25 | 1230000000000EGP | 19
我尝试使用
阅读tie @lines, 'Tie::File', "C:/Programs/myfile.csv", autochomp=>0 or die "Can't read file: $!\n";
foreach $l (@lines1)
{print "$l\n";
}
和
open FILE, "`<`$filename" or die $!;
my @lines=`<`FILE>;
foreach $l (@lines)
{print "$l\n";
}
close FILE;
答案 0 :(得分:3)
该文件具有Perl无法识别的格式的换行符,因为它来自不同的操作系统。其他程序会自动检测不同的换行符格式,但Perl不这样做。
如果Net::FTP
以ASCII模式执行传输(例如$ftp->ascii
以启用此模式),则应该为您处理并纠正此问题。
或者,您可以弄清楚换行符的用途,然后将特殊的$/
变量设置为该值。