免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 2547 | 回复: 5
打印 上一主题 下一主题

新手真心求教,求高人指点 [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2011-06-25 15:41 |只看该作者 |倒序浏览
本帖最后由 zhlong8 于 2011-06-25 22:43 编辑

在公司用perl处理Csv文件,需要写入数据库。代码如下:
open(OUTFILE,"3.Csv") || die ("open OUTFILE failed");
my $title = <OUTFILE>;
my @line = <OUTFILE>;       
foreach my $row (@line){
                $row =~ s/[\s]+$//;
                my @array;
                while($row =~ m/(?:^|,)(?:"((?:[^"]|"")*)"|([^",]*))/gx){
                                        if(defined $1){
                                                         $field = $1;       
                                        }else{
                                                        $field = $2;
                                                        $field =~ s/""/"/g;
                                        }
                                        $field = $dbh->quote($field);
                                        $field =~ s/(\&Acirc;)*//g;
                                        push(@array,"$field");
                }
}
会产生“Segmentation fault”错误,文件有100M。因为文件大?还是因为中间有空行?求解惑。

论坛徽章:
0
2 [报告]
发表于 2011-06-25 15:42 |只看该作者
自己先顶下

论坛徽章:
0
3 [报告]
发表于 2011-06-25 16:58 |只看该作者
你的笑脸,毫不吝惜。

论坛徽章:
0
4 [报告]
发表于 2011-06-25 20:32 |只看该作者
楼主把代码放到代码格式里。

论坛徽章:
0
5 [报告]
发表于 2011-06-25 22:53 |只看该作者
参看 DBD::CSV

论坛徽章:
0
6 [报告]
发表于 2011-06-27 14:57 |只看该作者
谢谢天使
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP