Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Perl: Общие вопросы > просто: как прочитать последнюю строку файла?


Автор: PyccHeBa 7.12.2007, 07:54
Привет!

Имеется файл, он открыт перлом. Там несколько тысяч строк. Нужно прочитать последнюю.  Как это проще сделать?

Автор: amg 7.12.2007, 13:19
Код

$last_line = $_ while <FILE>;

Если файл действительно большой (миллионы строк), имеет смысл несколько ускорить программу:
Код

eof and $last_line = $_ while <FILE>;


Автор: GrayCardinal 7.12.2007, 13:20
Читаем с конца килобайт (не знаю как в перле, в Си это lseek + read), делим на строки (split), берём последнюю...

Добавлено через 50 секунд
amg
Не думаю что в условии допустимо читать ВЕСЬ файл  smile 

Автор: amg 7.12.2007, 13:23
Если вдруг все строки строго одинаковой длины, то можно еще быстрее.

Автор: amg 7.12.2007, 13:42
Цитата(GrayCardinal @  7.12.2007,  13:20 Найти цитируемый пост)
Читаем с конца килобайт (не знаю как в перле, в Си это lseek + read), ...
Да, с seek гораздо быстрее, если известна максимальная длина последней стоки:
Код

seek FILE, -$max_length, 2;
eof && print while <FILE>;



Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)