|
|
ru.cgi.perl- RU.CGI.PERL ------------------------------------------------------------------ From : Artem Chuprina 2:5020/400 31 Jan 2002 11:46:11 To : "Andrey M" Subject : Re: Perl + Apache = не работает -------------------------------------------------------------------------------- Здравствуй, Andrey M. AM> AC > а счетчики пишут существенно более аккуратно. AM> Что вы имеете ввиду под "более аккуратно"? Я ву это дело только начинаю AM> вникать, поэтому я хотел бы услышать, что в этой маленькой программульке AM> надо сделать более аккуратно. Всё. Она будет работать в среде с параллельным выполнением процессов, поэтому должна уметь защищать свой файл от одновременной записи несколькими процессами, от чтения файла в процессе записи другим процессом (иначе непонятно, что она прочтет), и от того, что в промежутке между чтением и записью счетчик увеличит кто-нибудь другой. Сиречь не open(COUNT,"< ...") read close ++ open(COUNT,"> ...") print close а use Fcntl qw(:flock) use IO::Seekable open(COUNT,"+< ...") flock(COUNT,LOCK_EX) seek(COUNT,SEEK_SET,0) read ++ # поскольку счетчик у нас заведомо не уменьшается, то truncate не обязательно seek(COUNT,SEEK_SET,0) print close с немалыми шансами обломаться под виндой в силу того, что flock unimplemented. Кроме того, твой скрипт выводит нифига не корректный HTML, и потому Content-type должен быть text/plain... -- Artem Chuprina Communiware.net RFC2822: <ran@ran.pp.ru>, FIDO: 2:5020/358.49, ICQ: 13038757 Отправлено через сервер Форумы@mail.ru - http://talk.mail.ru --- ifmail v.2.15dev5 * Origin: Talk.Mail.Ru (2:5020/400) Вернуться к списку тем, сортированных по: возрастание даты уменьшение даты тема автор
Архивное /ru.cgi.perl/6359baefb1e1.html, оценка из 5, голосов 10
|