Я предполагаю, что вы используете LWP::Simple
функцию get
.Это не возвращает список строк тела ответа, но строка, содержащая тело ответа.Итак, сначала вы, вероятно, имели в виду:
my $content = get($uri);
Теперь вы можете читать и читать эту строку за строкой, передавая каждую строку методу Text::CSV
s parse
.В некоторых случаях это может работать, но поскольку файлы CSV могут содержать встроенные символы новой строки, это не будет очень надежным.
Вместо этого позвольте Text::CSV
выяснить, что именно является строкой на входе, передавэто дескриптор файла, который он может прочитать сам по себе.Для этого нет необходимости сохранять файл локально.Вы можете просто открыть дескриптор строки:
open my $fh, '<', \$content or die $!;
my $csv = Text::CSV->new({ sep_char => ',' });
while (my $row = $csv->getline($fh)) {
my @fields = @{ $row };
...
}