У меня есть набор данных, разделенный табуляцией со строками пользовательского агента в двойных кавычках. Мне нужно проанализировать каждый из этих столбцов и, основываясь на ответе моего другого сообщения , я использовал модуль Text :: CSV.
94410634 0 GET "Mozilla/4.0 (compatible; MSIE 8.0; Windows NT 5.1; Trident/4.0; GTB6.6; .NET CLR 2.0.50727; .NET CLR 3.0.04506.648; .NET CLR 3.5.21022; .NET CLR 3.0.4506.2152; .NET CLR 3.5.30729; AskTB5.5)" 1
Код простой.
#!/usr/bin/perl
use strict;
use warnings;
use Text::CSV;
my $csv = Text::CSV->new(sep_char => "\t");
while (<>) {
if ($csv->parse($_)) {
my @columns = $csv->fields();
print "@columns\n";
} else {
my $err = $csv->error_input;
print "Failed to parse line: $err";
}
}
Но я получаю ошибку Failed to parse line:
, когда пытаюсь это сделать с этим набором данных. Что я делаю неправильно? Мне нужно извлечь 4-й столбец, содержащий строки агента пользователя для дальнейшей обработки.