|
ru.perl- RU.PERL ---------------------------------------------------------------------- From : Dmitriy Goldobin 2:5020/400 14 Apr 2000 14:10:47 To : All Subject : Re: Читать файл с конца. -------------------------------------------------------------------------------- Hi! > Хочеться читать файл логов построчно с конца к началу. > (Hу не прочитывать же его _весь_ для поиска последнего. > сообщения об ошибке. Там мегов до 60 может быть, > когда отладка высокая) > Подскажите, как бы это сделать попроще ? > Ответы типа man ХХХ Принимаються с радостью :) Вот довольно приемлемый по скорости и памяти вариант: sub PrintReverse { open FILE, shift; binmode FILE; seek FILE, 0, 2; my $chunk = ""; for( my $pos = tell(FILE) & ~2047; $pos >= 0; $pos -= 2048 ) { my $buf; seek FILE, $pos, 0; read FILE, $buf, 2048; @_ = split /^/, $buf.$chunk; $chunk = shift if $pos; print pop while( @_ ); } } Bye. --- ifmail v.2.15dev4 * Origin: Electronic Microsystems JSC (2:5020/400) Вернуться к списку тем, сортированных по: возрастание даты уменьшение даты тема автор
Архивное /ru.perl/219569a8bc7a7.html, оценка из 5, голосов 10
|