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


ru.perl

 
 - RU.PERL ----------------------------------------------------------------------
 From : Pavel Ammosov                        2:5020/52      31 Aug 2001  04:08:10
 To : Andrey Urazov
 Subject : Re: my open func
 -------------------------------------------------------------------------------- 
 
 
 AU>А есть ли возможность написать свою функцию open, котоpая могла бы
 AU>быть использована как pодная?
 
 Более-менее.
 - --- My.pm ---
 package My;
 require Exporter;
 @My::ISA = qw(Exporter);
 @My::EXPORT_OK = qw(&open);
 
 sub open(*;$)
 {
   no strict 'refs';
   local *FILE = $_[0];
   local $::file;
   if (defined($_[1])) {
     $::file = $_[1];
   } else {
     *FILE = *{$_[0]}{IO};
   }
   print STDERR "opening $::file\n";
   CORE::open(FILE, $::file) || die "cannot open '$::file': $!\n";
 }
 1;
 
 - --- My.pm ---
 
 и программа к нему:
 #!/usr/bin/perl -w
 use strict;
 use My qw(open);
 
 open(IN, "xxx");
 while(<IN>) {
   print;
 }
 close IN;
 
 Осталось только сделать так, чтоб оно работало...
 
 [...]
 
 AU>Получаю pугань о том что IN используется только единожды. Ругань,
 AU>естественно, исчезает пpи использовании
 AU>  mopen(*IN{IO}, "ttt");
 AU>Hо хочется, чтобы функция была в указанном смысле pодному open.
 AU>Возможно ли это осуществить?
 
 Угу. close IN написать и IN будет использован более одного раза. 
 
 -- 
 Pavel Ammosov                                               O    \
 apavel@aha.ru                                                 __  )
 http://isabase.philol.msu.ru/~apavel/                             )
 wget -O - isabase.philol.msu.ru/~apavel/key.asc|pgp -fka    O    /
 
 --- FIDOGATE 4.4.0-snp10
  * Origin: Zenon N.S.P. news server (2:5020/52.0)
 
 

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

 Тема:    Автор:    Дата:  
 my open func   Andrey Urazov   30 Aug 2001 11:48:37 
 Re: my open func   Pavel Ammosov   31 Aug 2001 04:08:10 
Архивное /ru.perl/3048604ec89d3.html, оценка 2 из 5, голосов 10
Яндекс.Метрика
Valid HTML 4.01 Transitional