|
ru.cgi.perl- RU.CGI.PERL ------------------------------------------------------------------ From : Max Kozlov 2:5020/400 15 Nov 2000 15:36:41 To : All Subject : Files under mod_perl -------------------------------------------------------------------------------- Стоит задачка работать с файлами из модуля под mod_perl модуль выглядит примерно так: #!/usr/bin/perl -w package MyModule; use strict; use Symbol; .... sub new { my $type=shift; my $self={}; my $class = ref($type) || $type; bless $self, $class; ... my $self->{'filehandle'} = gensym; open $self->{'filehandle'}, 'filename'; return $self; } sub put { my $self=shift; my $line=shift; flock ($self->{'filehandle'},2); print $self->{'filehandle'} $line; flock ($self->{'filehandle'},8); } sub get { my $self=shift; my $line=''; flock ($self->{'filehandle'},2); $line = <$self->{'filehandle'}>; flock ($self->{'filehandle'},8); return $line } sub close { my $self=shift; close($self->{'filehandle'}); } вопрос: нормально ли отработает мод-перл такую конструкцию ? то есть (главное!) не потеряет ли он незакрытый файл и собственно filehandle, организует dead-lock и тд, в случае нажатия юзером "STOP" в критическом месте. или файл корректно разлочится и закроется ? поможет ли введение функции DESTROY аналогичной close или все же лучше открывать и закрывать файл на месте (в put и get) ? --- ifmail v.2.15dev5 * Origin: Demos online service (2:5020/400) Вернуться к списку тем, сортированных по: возрастание даты уменьшение даты тема автор
Архивное /ru.cgi.perl/7804581d2a71.html, оценка из 5, голосов 10
|