Pygo: auslesen aus einer named pipe

Hallo!

Ich möchte gerne eine named pipe verwenden, um ab und zu ein Kommando von einem script an ein anderes zu senden, die sich nicht kennen. Ich habe auch schon mit mkfifo etwas erstellt und es steht sogar ein schönes p vor der Berechtigungsstruktur.
Leider scheine ich irgendwas falsch zu machen, denn meine Infos gelangen nicht von einem Prozess zum andern (zumindest sieht sie das empfangende script nicht).

Mein sendendes Programm macht zu Testzwecken im Moment nicht mehr als:

open(FIFO', "> pm_cmd") || die "fifo: $!\n";
my $input = <>;
print FIFO $input;
print "habe $input weitergegeben\n";
close(FIFO);
<<<<<

Wenn ich dieses Script vor dem anderen ausführe, kommt die Ausgabe auch nicht, sprich, er scheint auch tatsächlich zu erkennen, dass ein Leser für die fifo eingetroffen ist (und wartet vorher darauf).

Das empfangende script hat etwa diese Befehle für die Kommunikation:

print "es ist eine fifo!\n" if(-p "pm_cmd");
open(FIFO, "+< pm_cmd") || print "fifo: $!\n";
[...]
my $command = <FIFO>;
print $command;
<<<<<

Die erste Ausgabe kommt auch. In diesem Fall blockiert aber die vorletzte Zeile. Aus diesem Grund habe ich dann mal versucht, die beiden letzten Zeilen hiermit zu ersetzen:

my $s = new IO::Select(FIFO);
my @readable = $s->can_read(1);
if($readable[0]){
 print "von fifo kann gelesen werden\n";
 [...]
}
<<<<<
Damit geht er nie in die if-Anweisung. Allerdings weiss ich auch nicht, ob das IO::Select mit named pipes umgehen kann.

Aber da er in beiden Fällen nicht die Sachen findet, die eigentlich drin stehen sollten, hab ich ja wohl irgendwas falsch verstanden. Die Dokumente über fifo und named pipes, die ich so gefunden habe, nutzen aber alle das einfache <>, um damit zu arbeiten. Hat jemand eine Idee, wo mein Denkfehler liegt?

Dank und Gruss,
Py