Thread Perl mit Kommandozeilenprogramm kommunizieren (Windows)
(79 answers)
Opened by bianca at 2013-09-10 13:07
So ganz verstehe ich das nicht.
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 33 34 35 36 37 38 39 40 41 42 43 44 45 #!/usr/bin/perl use strict; use warnings; use diagnostics; use Data::Dumper; use IPC::Open3; use IO::Select; my %conf = ( pfad => 'C:/Program Files/GNU/GnuPG/pub', exe => 'gpg2zum_test_falsch_geschrieben.exe', ); my ($pid,$infh,$outfh,$errfh); eval { $pid = open3($infh,$outfh,$errfh,"$conf{pfad}/$conf{exe}"); }; if ($@) { print "Fehler '$@' beim Programmstart\n"; } else { print "PID '$pid'\n"; my $sel = new IO::Select; $sel->add($outfh,$errfh); local *OUTPUT; local *ERRLOG; while(my @ready = $sel->can_read) { foreach my $fh (@ready) { my $line = <$fh>; if(not defined $line){ $sel->remove($fh); next; } if($fh == $outfh) { print OUTPUT $line; } elsif($fh == $errfh) { print ERRLOG $line; } else { die "Shouldn't be here\n"; } } } } Quote Wieso liefert der Code keinen Fehler? Die Datei 'gpg2zum_test_falsch_geschrieben.exe' kann es garnicht finden, weil es sie nicht gibt? 10 print "Hallo"
20 goto 10 |