【发布时间】:2017-03-11 15:34:59
【问题描述】:
创建 perl 脚本以从各种计费网站自动下载 CSV,但由于某种原因,我无法将 $mech->content() 中的数据转换为我可以逐行解析的内容。内容为多行CSV文件,
#!/usr/bin/perl
use WWW::Mechanize;
use IO::Socket::SSL qw();
my $mech = WWW::Mechanize->new();
...stuff...
my $data=$mech->content();
my (@lines)=split(/\n?\r/,$data);
print "lines=".@lines."\n---\n@lines\n---\n";
write_file("tmp.csv",$data);
for(my $i=0;$i<@lines;$i++){
...work that's done that depends on each
line being represented as an element of
an array...
}
最初我将 $mech->content() 直接分配给@lines,尝试了一些其他的东西,例如 $mech->content( raw => 1 ),正如你在上面看到的,我尝试用 \n 或 \r 拆分它. 浏览器将 csv 文件显示为 text/plain、Quirks 模式、UTF-8 运行文件 tmp.csv 显示它是 ASCII 文本并且是多行的。
我做错了什么,正确的方法是什么?
【问题讨论】:
标签: perl www-mechanize