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


ru.perl

 
 - RU.PERL ----------------------------------------------------------------------
 From : Artem Chuprina                       2:5020/400     23 Dec 2005  12:37:19
 To : Andrey Nevsky
 Subject : Re: Перенаправление STDOUT и tie
 -------------------------------------------------------------------------------- 
 
 Andrey Nevsky -> All  @ Thu, 22 Dec 2005 20:15:01 +0000 (UTC):
 
  AN> Здравствуйте!
 
  AN> Пытаюсь решить задачу копирования данных, поступающих внутри моей программы
  AN> в STDOUT, в логфайл. Для этого хочу использовать связывание STDOUT с
  AN> помощью tie:
 
  AN> # main.pl
  AN> #!/usr/bin/perl -w
  AN> use strict;
  AN> use Stdout2Log;
 
  AN> tie (*STDOUT, 'Stdout2Log', 'logfile.txt') or die "Can't tie: $!\n";
  AN> print "Test\n";
  AN> # Stdout2Log.pm
  AN> package Stdout2Log;
 
  AN> use strict;
  AN> use Carp;
 
  AN> sub TIEHANDLE {
  AN>  my $class = shift;
  AN>  my $file = shift;
  AN>  open (my $self, '>>', $file) or croak "Can't open log file '$file': $!\n";
  AN>  return bless $self, $class;
  AN> }
 
  AN> sub DESTROY {
  AN>  my $self = shift;
  AN>  $self->CLOSE;
  AN> }
 
  AN> sub CLOSE {
  AN>  my $self = shift;
  AN>  return close($self);
  AN> }
 
  AN> sub PRINT {
  AN>  my $self = shift;
  AN>  print $self @_;
  AN>  print @_;
  AN> }
 
  AN> 1;
 
  AN> Проблема состоит в том, что после такого связывания при вызове метода PRINT
  AN> класса Stdout2Log, по понятным причинам происходит бесконечная рекурсия.
  AN> Подскажите как обойти эту проблему.
 
 Объект должен содержать два файлхендла.  Второй делается посредством
 вызова IO::Handle->new_from_fd(fileno(STDOUT), "w").
 
 -- 
 Artem Chuprina
 RFC2822: <ran{}ran.pp.ru> Jabber: ran@jabber.ran.pp.ru
 
 Если ты не боишься синего экрана, то почему боишься черного?
   (c) Д.Белявский
 --- ifmail v.2.15dev5.3
  * Origin: Leninsky 45 home network (2:5020/400)
 
 

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

 Тема:    Автор:    Дата:  
 Перенаправление STDOUT и tie   Andrey Nevsky   23 Dec 2005 00:15:01 
 Re: Перенаправление STDOUT и tie   Maxim Yemelyanov   23 Dec 2005 12:25:26 
 Re: Перенаправление STDOUT и tie   Artem Chuprina   23 Dec 2005 12:37:19 
 Перенаправление STDOUT и tie   Andrey Nevsky   23 Dec 2005 19:28:24 
Архивное /ru.perl/11477e915a5f3.html, оценка 1 из 5, голосов 10
Яндекс.Метрика
Valid HTML 4.01 Transitional