我从供应商那里(使用他们的API)获取一个“csv文件”,但他们所做的就是将整个文件喷到其响应中。这本身不是很大的问题,除非有些顽固的人类输入数据并添加了“特性”比如换行符。现在我正在为原始数据创建一个文件,然后重新打开它以读取数据:
open RAW, ">", "$rawfile" or die "ERROR: Could not open $rawfile for write: $! \n";
print RAW $response->content;
close RAW;
my $csv = Text::CSV_XS->new({ binary=>1,always_quote=>1,eol=>$/ });
open my $fh, "<", "$rawfile" or die "ERROR: Could not open $rawfile for read: $! \n";
while ( $line = $csv->getline ($fh) ) { ...
以某种方式来看,这似乎不太优雅。看起来我应该能够像读取文件一样从$response->content(多行字符串)中读取数据。但是我完全不知道如何做到这一点。希望能得到指导。
谢谢,Paul