|
ru.perl- RU.PERL ---------------------------------------------------------------------- From : Michael B. Babakov 2:5020/400 23 Dec 2000 20:50:22 To : All Subject : Re: Переделка %20%3F в удобочитаемое... -------------------------------------------------------------------------------- Denis Shaposhnikov wrote: > > >>>>> "Pavel" == Pavel Kurnosoff > >>>>> <Pavel_Kurnosoff@p25.f736.n5030.z2.fidonet.org> writes: > > PK> пока выкрутился кэшированием этого дела на диск, а потом print > PK> while <F>; > PK> - всяко быстрее лишнего xslt прохода или даже eval'а (данные не > PK> меняются). > v> sysread-ом его, sysread-ом. > Pavel> о, thanx. забыл-с... буфер-то мне тут ведь не нужен. > > А в чем разница с <>? Ведь не по одному же байту ты будешь sysread'ом > читать? Значит все равно буфер для чтения будешь заводить. Так какая > разница, кто это сделает, ты или stdio? > > 2 All: Есть какие нибудь противопоказания использованию <> для > бесконечного, построчного чтения файла? Что нибудь вроде: > > for (;;) { > while (<F>) { > ... > } > sleep 1; > } Похоже ни какого. См. пример из "Perl Cookbook" с моими правками, чтоб под FreeBSD заработало: === cut === #!/usr/bin/perl # см. utmp(5) use IO::File; $typedef = 'A8 A16 A16 l'; # $line, $user, $host, $time $sizeof = length pack($typedef, () ); open (WTMP, "/var/log/wtmp") || die "Can't open /var/log/wtmp: $!\n"; seek(WTMP, 0, SEEK_END); for(;;) { while ( read(WTMP, $buffer, $sizeof) == $sizeof ) { ($line, $user, $host, $time) = unpack($typedef, $buffer); # next unless $user && ord($user) && $time; next unless $time; # printf "'%s' '%s' '%s' '%s'\n", printf "%-8s %-16s %-16s %-14s\n", $line, $user, $host, scalar(localtime($time)); }; for ($size = -s WTMP; $size == -s WTMP; sleep 3) {}; WTMP->clearerr(); }; === cut === -- С уважением, Михаил Бабаков - --- e-mail: M.Babakov@sochi.net.ru http://sochi.net.ru/~mike --- ifmail v.2.15dev5 * Origin: I'ts my home! :) (2:5020/400) Вернуться к списку тем, сортированных по: возрастание даты уменьшение даты тема автор
Архивное /ru.perl/64071537828c.html, оценка из 5, голосов 10
|