csv 行を変数に分割する必要があります
# sample data
"100-001","Bla Bla, Bla, Bla","","",0.00000,"W1",6.000,0.000
これを試しましたが、数値フィールドに「」がないため、機能しません...
($var0,$var1,$var2,$var3,$var4,$var5,$var6,$var7,$var8) = split(/\","/);
ありがとう...
CSV の場合は、パーサーを使用する必要があります。明らかなのは Text::CSV です。あなたが言うように、モジュールをインストールするのが難しい場合は、 という Pure Perl 実装を使用できますText::CSV_PP
。それをファイルに貼り付けて使用します。問題が解決しました。
Text::ParseWords
これを攻撃するもう 1 つの方法は、ピンチで適切な CSV 解析を実行できるコア モジュールを使用することです。
#!/usr/bin/env perl
use strict;
use warnings;
use Text::ParseWords;
print "$_\n" for parse_line( ',', 0, '"100-001","Bla Bla, Bla, Bla","","",0.00000,"W1",6.000,0.000');
これはうまくいきます:
($var0,$var1,$var2,$var3,$var4,$var5,$var6,$var7,$var8) =
split(/(?<="|[0-9]),(?="|[0-9])/);
?<=
後読みアサーションです?=
先読みアサーションです