Я поддерживаю script, который может получать свои данные из разных источников и работает на нем в каждой строке. В зависимости от используемого источника, разрывы строк могут быть Unix-стилем, стилем Windows или даже для некоторого агрегированного ввода, смешанным (!).
При чтении из файла это выглядит примерно так:
@lines = <IN>;
process(\@lines);
...
sub process {
@lines = shift;
foreach my $line (@{$lines}) {
chomp $line;
#Handle line by line
}
}
Итак, мне нужно сделать замену chomp на что-то, что удаляет стили строк Unix-стиля или Windows. Я придумываю слишком много способов решить это, один из обычных недостатков Perl:)
Каково ваше мнение о наиболее аккуратном способе отбросить родовые разрывы? Что было бы наиболее эффективным?
Изменить: небольшое уточнение - метод "процесс" получает список строк из какого-то, а не читаемого из файла. Каждая строка может иметь
- Отсутствие прерывания строк
- Линейные строки в стиле Unix
- Линейные строки в стиле Windows
- Just Carriage-Return (когда исходные данные имеют разрывы строк в стиле Windows и считываются с помощью $/= '\n')
- Агрегированный набор, в котором строки имеют разные стили