Text::CSV_XS, parse(), fields(), error_input()

如果field里面也包含分隔符(比如"tom,jack,jeff","rosemike",O'neil,"kurt,korn"),那么我们解析起来确实有点麻烦,Text::CSV_XS挺方便。

#!/usr/bin/perl 

use strict; 
use Text::CSV_XS; 

my @columns; 
my $csv = Text::CSV_XS->new({ 
                     'binary' => 1, 
                     'quote_char'  => '"', 
                         'sep_char'    => ','       
                     });  

foreach my $line(<DATA>) 
{ 
   chomp $line; 
   if($csv->parse($line)) 
   { 
      @columns = $csv->fields(); 
   } 
   else 
   { 
      print "[error line : ", $csv->error_input, "]\n"; 
   } 

   map {printf("%-14s\t", $_)} @columns; 
   print "\n"; 
} 
exit 0;

__DATA__

id,compact_sn,name,type,count,price

37,"ITO-2003-011","台式机,compaq","128M","290","1,2900"

35,I-BJ-2003-010,"显示器,硬盘,内存",'三星',480,"1,4800"

55,"C2003-104",笔记本,"Dell,Latitude,X200",13900,"1,13900"


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值