Open con -| y |-

La función open acepta que en el argumento que corresponde al nombre del fichero se escriba -| o bien |- . En ese caso

El siguiente ejemplo es una variante del que aparece en perldoc perlipc:

lhp@nereida:~/Lperl/src/perl_networking/ch2$ cat -n pipe2minus
 1  #!/usr/bin/perl -w
 2  use strict;
 3
 4  my $pid = open(my $TO_KID, "|-");
 5  die "Can't fork\n" unless (defined $pid);
 6
 7  if ($pid) {  # parent
 8      print $TO_KID "2 x $_ = ".2*$_."\n" for 1..3;
 9      close($TO_KID) || warn "kid exited $?";
10  } else {     # child
11      while (<STDIN>) { # child's STDIN is parent's $TO_KID
12          print "Father says $_";
13      }
14      exit;  # don't forget this
15  }
Al ejecutar tenemos:
lhp@nereida:~/Lperl/src/perl_networking/ch2$ ./pipe2minus
Father says 2 x 1 = 2
Father says 2 x 2 = 4
Father says 2 x 3 = 6



Subsecciones
Casiano Rodríguez León
2012-02-29