0

我使用 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;
4

1 回答 1

3

该文件具有 Perl 无法识别的格式的换行符,因为它来自不同的操作系统。其他程序会自动检测不同的换行格式,但 Perl 不这样做。

如果您已Net::FTP在 ASCII 模式下执行传输(例如$ftp->ascii启用此模式),则应注意并为您更正。

或者,您可以找出用于换行符的内容,然后将特殊$/变量设置为该值。

于 2013-02-15T09:57:36.723 回答