Я читаю CSV-файл, который был создан в Excel, причем первая строка является заголовком столбца. Один заголовок столбца содержит встроенную новую строку. Я хочу, чтобы игнорировать эту строку, но читая его линию за линией, как:Как обрабатывать встроенные строки в CSV-файлах в Perl?
while (<IN>) {
...
}
будет рассматривать его в качестве новой линии, которая нарушит мой код (который я до сих пор не написано). Мой подход состоял в том, чтобы прочитать первую строку в массиве заголовков столбцов и обработать остальные строки по-разному.
Может ли быть регулярное выражение, которое я могу использовать где-то в while
, который игнорирует новую строку, если это не последняя новая строка?
Или я должен подходить к этому по-другому?
Разбор CSV на удивление сложный и для всех, кроме самого тривиального кода (i, e, как только вы думаете, что что-то может сломаться на 'split ',', $ line', вы должны использовать CPAN. Текст :: CSV_XS и Text :: XSV - это два, которые вы должны учитывать. Я использую первый из-за инерции, но последний является более новым и, вероятно, лучше для многих применений. – singingfish
Я думаю, вы имели в виду, что это ваш собственный ответ, а не комментарий к моему. –
Мне сказали, что это не сработает, но я вижу, что есть двоичный вариант, который может поставить ставку. Я попробую. Спасибо за редактирование. –