Schrift
[thread]5847[/thread]

stdout einlesen



<< >> 9 Einträge, 1 Seite
dmo
 2003-10-23 13:40
#66763 #66763
User since
2003-09-16
7 Artikel
BenutzerIn
[default_avatar]
Hi
ich versuche schon die ganze zeit das ich von einem, von perl gestartetes progy den stdout in eine var bekomme.
wie zum hänker funktioniert das?
mfg
dmo

PS:MSWin32
frodus
 2003-10-23 14:02
#66764 #66764
User since
2003-09-26
147 Artikel
BenutzerIn
[default_avatar]
Meinst du sowas?

Code: (dl )
1
2
3
4
5
6
7
8
#!/usr/bin/perl

my $result;
open(WHOAMI," whoami |") or die "Error 1";
while (<WHOAMI>) {
$result = $_;
}
print "The result is $result\n";


Ist zwar Linux sollte abe auch unter Windows Funktionieren.
pq
 2003-10-23 14:03
#66765 #66765
User since
2003-08-04
12208 Artikel
Admin1
[Homepage]
user image
[quote=dmo,23.10.2003, 11:40]ich versuche schon die ganze zeit das ich von einem, von perl gestartetes progy den stdout in eine var bekomme.
[/quote]
also das ist ein bisschen vage, was du hier beschreibst. wie hast du das
programm denn gestartet?

quick&dirty wäre:
Code: (dl )
my $output = `perl script.pl`;
\n\n

<!--EDIT|pq|1066903450-->
Always code as if the guy who ends up maintaining your code will be a violent psychopath who knows where you live. -- Damian Conway in "Perl Best Practices"
lesen: Wiki:Wie frage ich & perlintro Wiki:brian's Leitfaden für jedes Perl-Problem
dmo
 2003-10-23 14:15
#66766 #66766
User since
2003-09-16
7 Artikel
BenutzerIn
[default_avatar]
gestartet mit system (mir ist nichts besseres eingefallen)
und es ist ein dos progi das einen string(einzeilig) zurück gibt. so ähnlich sieht auch der string von "ver" aus.
jan
 2003-10-23 14:22
#66767 #66767
User since
2003-08-04
2536 Artikel
ModeratorIn
[Homepage] [default_avatar]
mit system wirst du die ausgabe nicht bekommen, nimm eine der zwei hier vorgeschlagenen möglichkeiten.
dmo
 2003-10-23 15:32
#66768 #66768
User since
2003-09-16
7 Artikel
BenutzerIn
[default_avatar]
Danke erledigt
Crian
 2003-10-23 16:42
#66769 #66769
User since
2003-08-04
5872 Artikel
ModeratorIn
[Homepage]
user image
Sonst gibt es noch die Möglichkeiten, die Ausgabe in eine Datei zu lenken und diese einzulesen oder die beiden Perlprogramme per Pipe (von außen) zu verbinden.\n\n

<!--EDIT|Crian|1066912988-->
s--Pevna-;s.([a-z]).chr((ord($1)-84)%26+97).gee; s^([A-Z])^chr((ord($1)-52)%26+65)^gee;print;

use strict; use warnings; Link zu meiner Perlseite
[E|B]
 2003-10-23 18:04
#66770 #66770
User since
2003-08-08
2561 Artikel
HausmeisterIn
[Homepage] [default_avatar]
[quote=Crian,23.10.2003, 14:42]Sonst gibt es noch die Möglichkeiten, die Ausgabe in eine Datei zu lenken und diese einzulesen oder die beiden Perlprogramme per Pipe (von außen) zu verbinden.[/quote]
Das geht glaube ich so:

Code: (dl )
system("ls -l > ~/files");
Gruß, Erik!

s))91\&\/\^z->sub{}\(\@new\)=>69\&\/\^z->sub{}\(\@new\)=>124\&\/\^z->sub{}\(\@new\)=>);
$_.=qq~66\&\/\^z->sub{}\(\@new\)=>93~;for(@_=split(/\&\/\^z->sub{}\(\@new\)=>/)){print chr;}

It's not a bug, it's a feature! - [CGI-World.de]
Crian
 2003-10-25 04:31
#66771 #66771
User since
2003-08-04
5872 Artikel
ModeratorIn
[Homepage]
user image
Ja, z.B., und dann ~/files wieder einlesen.

Oder eben von außen ls -l | meinperlprogramm.pl
s--Pevna-;s.([a-z]).chr((ord($1)-84)%26+97).gee; s^([A-Z])^chr((ord($1)-52)%26+65)^gee;print;

use strict; use warnings; Link zu meiner Perlseite
<< >> 9 Einträge, 1 Seite



View all threads created 2003-10-23 13:40.