J'ai un programme qui appelle un autre programme et le traitement de la sortie de l'enfant, à savoir:Comment effectuer une lecture non bloquante à partir d'un tube en Perl?
my $pid = open($handle, "$commandPath $options |");
Maintenant, j'ai essayé quelques différentes façons de lire de la poignée sans bloquer avec peu ou pas de succès.
Je trouve des questions connexes:
- perl-win32-how-to-do-a-non-blocking-read-of-a-filehandle-from-another-process
- why-does-my-perl-sysread-block-when-reading-from-a-socket
Mais ils souffrent de problèmes:
ioctl
se bloque régulièrement perlsysread
blocs sur 0 octets (une occurrence fréquente)
Je ne sais pas comment résoudre ce problème.
Est-ce Windows? – mob
Voir [cette réponse] (http://stackoverflow.com/questions/1530592/why-does-my-perl-sysread-block-when-reading-from-a-socket/1532251#1532251) - utilisez 'select() 'pour déterminer s'il y a des données disponibles à lire. – Ether
@Ether sélection ne fonctionne pas sur les handles de fichiers sur les fenêtres – tzenes