perlbug
[p5sagit/p5-mst-13.2.git] / pod / perlipc.pod
index 3af062f..c75fa95 100644 (file)
@@ -179,9 +179,11 @@ the process. Many daemons provide this mechanism using the C<SIGHUP>
 signal handler. When you want to tell the daemon to re-read the file
 you simply send it the C<SIGHUP> signal.
 
-The implementation of such a mechanism in Perl using a normal signal
-handler works only the first time the signal is sent. The solution to
-this problem is to use C<POSIX> signal handlers if available.
+Not all platforms automatically reinstall their (native) signal
+handlers after a signal delivery.  This means that the handler works
+only the first time the signal is sent. The solution to this problem
+is to use C<POSIX> signal handlers if available, their behaviour
+is well-defined.
 
 The following example implements a simple daemon, which restarts
 itself every time the C<SIGHUP> signal is received. The actual code is
@@ -568,6 +570,16 @@ And here's a safe pipe open for writing:
        # NOTREACHED
     }
 
+Since Perl 5.8.0, you can also use the list form of C<open> for pipes :
+the syntax
+
+    open KID_PS, "-|", "ps", "aux" or die $!;
+
+forks the ps(1) command (without spawning a shell, as there are more than
+three arguments to open()), and reads its standard output via the
+C<KID_PS> filehandle.  The corresponding syntax to read from command
+pipes (with C<"|-"> in place of C<"-|">) is also implemented.
+
 Note that these operations are full Unix forks, which means they may not be
 correctly implemented on alien systems.  Additionally, these are not true
 multithreading.  If you'd like to learn more about threading, see the