При выполнении построчного ввода-вывода необходимо учитывать различия в интерпретации символов, обозначающих конец строки. Ни в одной операционной системе не достигнуто единообразие с другими операционными системами в отношении того, как должны оканчиваться строки в текстовых файлах. В системах UNIX строки оканчиваются символом перевода строки (LF, восьмеричное значение 12 в таблице ASCII), в системах Macintosh — символом возврата каретки (СR, восьмеричное значение 15), а проектировщики DOS/Windows решили, что каждая строка текста должна оканчиваться парой символов возврата каретки/перевода строки (CRLF, или восьмеричное значение I512). В большинстве сетевых серверов с построчным вводом-выводом для обозначения конца строки также применяется комбинация символов CRLF.
Это приводит к бесконечной путанице при перемещении текстовых файлов из одной операционной системы в другую. К счастью, в языке Perl предусмотрен способ проверки и корректировки символов обозначения конца строки. Глобальная переменная $/ содержит текущий символ или последовательность символов, используемых для обозначения конца строки. По умолчанию эта переменная устанавливается равной 12 в системах UNIX, 15 — в системах Macintosh и 1512 — в системах Windows и DOS. Данные вопросы неоднократно обсуждались на многих ресурсах, где Вы также можете заказать платный постинг на форумах, цены которых приятно удивят Вас.
Оператор построчного ввода выполняет чтение символов из указанного дескриптора файла до тех пор, пока не встретит символ (символы) конца строки, содержащийся в переменной $/, а затем возвращает строку текста, в которой все еще находится последовательность символов, обозначающая конец строки. Функция chomp ( )1 выполняет поиск последовательности символов обозначения конца текстовой строки и удаляет ее с учетом текущего значения переменной $/.
Строковый управляющий код n — это логический символ новой строки; на различных платформах он трактуется по-разному. Например, код n равен 12 в системах UNIX и 15 — в системах Macintosh. (В системах Windows n обычно равен 12, но, : как описано ниже, в текстовом режиме DOS он имеет другое значение.) Аналогичным образом r представляет собой логический символ возврата каретки, который также; изменяется от одной системы к другой.