Thread Perl mit Kommandozeilenprogramm kommunizieren (Windows) (79 answers)
Opened by bianca at 2013-09-10 13:07

GwenDragon
 2013-09-21 11:31
#170462 #170462
User since
2005-01-17
14555 Artikel
Admin1
[Homepage]
user image
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

View full thread Perl mit Kommandozeilenprogramm kommunizieren (Windows)