Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Perl: Общие вопросы > Почему не читает из пайпов


Автор: fray 4.9.2007, 14:10
короче, почему не выводит на экран ? не читает из <$reader> ?Это работает но не в Актив перле
 
Код
 
#!/usr/bin/perl
use strict;
use warnings;
use IO::Handle;
use IO::Select;

my $s = new IO::Select; # селектор
my $Size = 3;
my $pid;

for(my $i=1; $i<$Size ; $i++)
{
      my ($reader, $writer);
      pipe($reader, $writer);
      $reader->autoflush(1);
      $writer->autoflush(1);
      $pid = fork;
      die "fork no good $!\n" unless defined $pid;
      $s->add($reader);
      unless($pid) {
              close $reader;
              for(1..3){
                      sleep(3 * $_);
                      print $writer "child($$) post to parent => $_$_$_\n" ;
              }
              close $writer;
              print "ended child PID $$\n";
              exit;
      }
}
my @ready;
if($pid) {
      if(@ready = $s->can_read(1)){
              foreach my $reader (@ready){
                  print "parent recvieved: $_" while <$reader> ;
              }
}

print "end parent\n";
wait();

while (@ready = $s->can_read(0))
{
      foreach my $reader (@ready){
                      print "parent recvieved: $_" while <$reader> ;
              }
      }
}


Автор: Bulat 5.9.2007, 08:19
Насколько я помню, приреализации пайпов, также используются дескрипторы, как и у файлов. Т.е. не <$reader>, а <READER>, допустим

Автор: fray 5.9.2007, 12:12
Цитата(Bulat @ 5.9.2007,  08:19)
Насколько я помню, приреализации пайпов, также используются дескрипторы, как и у файлов. Т.е. не <$reader>, а <READER>, допустим

Кароче Баян, <$reader> так тоже можно, прога рабочая но не в Винде, в БСД всё работает

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)