Thread Perl mit Kommandozeilenprogramm kommunizieren (Windows)
(79 answers)
Opened by bianca at 2013-09-10 13:07
Die Ausgabe der Meldungen von GPG gpg: ... geht an STDERR in der Kosnole.
Ich denke, dass die Ein/Ausgabe über Pipes irgendwelche Parameter braucht. Ich teste das mal heute. //EDIT: Der Schnippsel geht: Code (perl): (dl
)
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 #!/usr/bin/perl use strict; use warnings; use diagnostics; use Data::Dumper; use IPC::Run qw(start pump finish timeout harness); $ENV{IPCRUNDEBUG}="data"; # debug modus my ($in,$out,$err); $|=1; my @prog = qw (gpg.exe -v -e); # verschlüsseln my $handle = start \@prog, \$in, \$out, \$err, 10; pump $handle until length $err; if ($err =~ /gpg:/mg) { $in = "Kleiner Test\r\n"; } pump $handle until length $err; finish $handle or die "@prog beendet mit Fehlercode $?"; print "Ausgabe:\n$out"; Wie du siehst ist es wichtig zu prüfen, über welche Kanäle was rein und raus geht und ob das Programm noch Parameter setzen muss, wenn keine Ein-/Ausgabe über Terminal erfolgt. Last edited: 2013-09-21 11:36:15 +0200 (CEST) die Drachin, Gwendolyn
Unterschiedliche Perl-Versionen auf Windows (fast wie perlbrew) • Meine Perl-Artikel |