Thread Frage zu sysread
(18 answers)
Opened by bianca at 2013-10-01 09:18
Habe mal was versucht:
Code (perl): (dl
)
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 #!/usr/bin/perl use strict; use warnings; use IPC::Open3 1.12; use IO::Handle 1.24; my $prog = join(' ',qw(perl doit.pl)); print "Rufe Programm '$prog' auf \n"; my ($in,$out,$err,$pid,$ausgabe,$puffer); eval { $pid = open3($in,$out,$err,$prog); $out->blocking(0); }; die "Gescheitert: '$@'" if $@; if (defined $pid) { print "PID '$pid', lese...\n"; #$ausgabe .= $puffer while (sysread $out,$puffer,4096); sysread $out,$ausgabe,4096; print "Fertig mit lesen\n"; if (defined $ausgabe) { print "\n\nErhalte:\n".('=' x 30)."\n$ausgabe"; my $code = <STDIN>; chomp($code); print $in $code."\n"; sysread $out,$ausgabe,4096; print "\n\nErhalte:\n".('=' x 30)."\n$ausgabe"; } } else { die "Keine PID"; } Habe ich das in Zeile 13 richtig gemacht? Es verhält sich nämlich leider genau so wie vorher. Gewundert hat mich auch, dass es keine Fehlermeldung gab, als ich use IO::Handle 1.24; nicht drin hatte. Ich dachte, das wäre eine Funktion von IO::Handle? 10 print "Hallo"
20 goto 10 |