换行符don';在FTP文件(Perl)的输入上不存在
我使用Net::FTP下载了一个csv文件。当我在文本编辑器或excel中查看此文件时,甚至在剪切/粘贴时,它都有换行符,如下所示:换行符don';在FTP文件(Perl)的输入上不存在,perl,character-encoding,escaping,Perl,Character Encoding,Escaping,我使用Net::FTP下载了一个csv文件。当我在文本编辑器或excel中查看此文件时,甚至在剪切/粘贴时,它都有换行符,如下所示: 000000000 G911 | 06 0000000000 CDR | 25 | 123 0000000000埃及镑| 19 当我用Perl读取文件时,它将整个文本视为一行,如下所示: 000000000 G911 | 060000000000CDR | 25 | 1230000000000EGP | 19 我试着用英语读它 tie @lines, 'Tie::
000000000 G911 | 06
0000000000 CDR | 25 | 123
0000000000埃及镑| 19 当我用Perl读取文件时,它将整个文本视为一行,如下所示: 000000000 G911 | 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";
}
及
openfile,“`该文件的换行符格式是Perl无法识别的,因为它来自不同的操作系统。其他程序会自动检测不同的换行符格式,但Perl不会这样做
如果您已在ASCII模式下执行传输(例如,$ftp->ASCII
以启用此模式),则应注意并纠正此问题
或者,您可以找出用于换行符的内容,然后将特殊的$/
变量设置为该值。文件的换行符格式是Perl无法识别的,因为它来自不同的操作系统。其他程序会自动检测不同的换行符格式,但Perl不能做到这一点
如果您已在ASCII模式下执行传输(例如,$ftp->ASCII
以启用此模式),则应注意并纠正此问题
或者,您可以找出用于换行符的内容,然后将特殊的$/
变量设置为该值。是的,忘了提到我使用的是$ftp->ascii。如何查看文件用于换行符的内容?@heatherspunce UseUse Data::Dumper;$Data::Dumper::Useqq=1;print Dumper$l;
它将写入去掉空白。注意:如果ASCII模式未正确转换换行符,可能这意味着服务器的换行符也不是本机格式。是的,忘记提到我使用的是$ftp->ASCII。如何查看文件用于换行符的内容?@HeatherSpence UseUse Data::Dumper;$Data::Dumper::Useqq=1;printDumper$l;
它将写出空白。注意:如果ASCII模式没有正确转换换行符,可能这意味着换行符也不是服务器的本机格式。为什么在open
和readline语句中有反勾号?我希望这不是在实际代码中。为什么在您的代码中有反勾号ropen
和readline语句?我希望这不是您实际的代码。
open FILE, "`<`$filename" or die $!;
my @lines=`<`FILE>;
foreach $l (@lines)
{print "$l\n";
}
close FILE;