|
my $pipe = new IO::File; my $pid; if (defined($pid = open($pipe, "-|"))) { if ($pid > 0) { return ($pipe, $pid); } else { exec($cmd) || exit 1; } } else { return undef; } |
$pipe = new IO::Handle; legt einen neue Dateiverbindung
an, ohne sie konkret zu eröffnen.
| |||||||
Im Vergleich zu open($pipe, "$cmd |") wird bei
open($pipe, "-|") nur eine Pipeline angelegt und fork
ausgeführt -- jedoch kein exec.
| |||||||
Entsprechend liefert diese Variante von open den
Return-Wert von fork zurück:
| |||||||
Mehr zu dieser Technik gibt es auf der Manualseite perlipc
unter der Rubrik ``Safe Pipe Opens''.
|
Copyright © 1996 - 2003 Andreas Borchert, in HTML konvertiert am 01.10.2003 |