suivant: Comment effacer ou copier
monter: Tips and tricks
précédent: Tips and tricks
  Index
Il existe deux manières pour effectuer cela : on peut d'abord
utiliser des backquotes comme en shell. Par exemple :
$pwd = `/bin/pwd`;
chop($pwd);
La deuxième manière, qui offre plus de possibilités, est la
suivante :
($pid = open(PIPE, "/bin/ps -a |")) or die "Error: $!\n";
(kill 0, $pid) or die "ps invocation failed";
while (defined($line = <PIPE>))
{
...;
}
close(PIPE);
Cette manière d'opérer se retrouve également dans l'opération
inverse, qui consiste à envoyer des données sur l'entrée
standard d'un programme :
($pid = open(PIPE, "| /usr/ucb/ftp")) or die "Error: $!\n";
(kill 0, $pid) or die "ftp invocation failed";
print PIPE "open ftp.enst-bretagne.fr\n";
...;
close(PIPE);
Dans l'exemple présenté ci-dessus, il serait plus intéressant de
pouvoir envoyer des données sur l'entrée standard en même temps
que de récupérer des données sur la sortie standard. Ceci est
possible grâce à un module fourni dans la distribution de
perl : IPC::Open2.
Olivier Aubert
1999-06-01
|