.csvファイルから行を読み込むための単純なperlスクリプトを作成しました。コードは以下の通りである:perlスクリプトで "2032 - EIF - CR charが引用符で囲まれず、EOL @ posの一部ではありません"というエラーが発生しました
#!/usr/bin/perl
use strict;
use warnings;
use Text::CSV;
my $csv = Text::CSV->new({ binary => 1 });
open my $fh, "<", "testresults.csv" or die "testresults.csv $!";
while (my $row = $csv->getline($fh)) {
my @fields = @$row;
}
$csv->eof or $csv->error_diag;
close $fh or die "testresults.csv $!";
そしてtestresults.csvファイルは次のようになります。
ノード1、ノード2、ノード3、ノード4、MAP1、MAP2、MAP3、MAP4、MAP5、map6、map7 、MAP8、DM、LAT、AVG、製品各ライン上の結果に続いて最初の行に
:
NAME1、NAME2、NAME3、NAME4、ノード1、ノード2、ノード3、ノード4、ノード5、ノード6、ノード7、ノード8,0%、
、 0.002835480002,0.1714008533,4.86003691857886E-04
など。私は、コマンドプロンプトから./filename.pl行う際
私は自分のコードで、次のエラーを取得しています: CSV_XSをERROR:2032 - EIF - EOLの@ POSの引用符で囲まれていない、いない部分の内側CR炭420
私はこのエラーについてGoogleに挑戦しましたが、このエラーを十分に理解できませんでした。
あなたは、あなたがそれらを期待していないあなたのデータに隠されたいくつかの文字を持っているように聞こえます。 'Data :: Dumperを使ってみてください。 $ Data :: Dumper :: Useqq = 1; 'そして、while(<$fh>){print Dumper $ _}'で数行を印刷してみてください。かなり一般的な問題は、Windowsタイプの行末を持つことです。 – TLP
@TLP:あなたは非常に有効なポイントがあると思います。 testresults.csvは、Linux上でperlスクリプトを実行している間に、Windowsマシン上の別のVBスクリプトによって作成されました。私はこれを整理することができるかどうかわかります。助けてくれてありがとう! –
問題ありません。特定の行が終了している場合は、Text :: CSVオプションで設定することができます。 'eol =>" \ r \ n "' – TLP