Главная страница


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)
 
 

Вернуться к списку тем, сортированных по: возрастание даты  уменьшение даты  тема  автор 

 Тема:    Автор:    Дата:  
 Files under mod_perl   Max Kozlov   15 Nov 2000 15:36:41 
Архивное /ru.cgi.perl/7804581d2a71.html, оценка 1 из 5, голосов 10
Яндекс.Метрика
Valid HTML 4.01 Transitional