0

Net::FTP を使用して csv ファイルをダウンロードしました。このファイルをテキスト エディターや Excel で表示したり、カット アンド ペーストしたりしても、改行があり、次のように なり
ます

Perl でファイルを読み取ると、テキスト全体が次のような 1 行として表示されます。

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::FTPASCII モードで転送を実行した場合(たとえば$ftp->ascii、このモードを有効にするため)、これを処理して修正する必要があります。

または、改行に何が使用されているかを把握し、特殊$/変数をその値に設定することもできます。

于 2013-02-15T09:57:36.723 に答える