-2

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(/\","/);

ありがとう...

4

2 に答える 2

4

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');
于 2012-06-26T18:58:35.573 に答える
0

これはうまくいきます:

($var0,$var1,$var2,$var3,$var4,$var5,$var6,$var7,$var8) = 
    split(/(?<="|[0-9]),(?="|[0-9])/);
  • ?<=後読みアサーションです
  • ?=先読みアサーションです
于 2012-06-26T16:48:14.350 に答える