|
|
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
|