Schrift
[thread]7846[/thread]

eval Output umleiten



<< >> 5 Einträge, 1 Seite
frodus
 2006-03-31 17:24
#64244 #64244
User since
2003-09-26
147 Artikel
BenutzerIn
[default_avatar]
Hi,

gibt es einen Weg die Ausgabe von Code der in eval {} ausgeführt wird
in einen eine Variable, Datei Handler umzuleiten.

Noch eine Anmerkung der Code von eval muss in dem Kontext von
dem Script abgearbeitet werden damit scheidet glaube ich system() aus.

Gruss,

Frodus\n\n

<!--EDIT|frodus|1143811554-->
Crian
 2006-03-31 18:46
#64245 #64245
User since
2003-08-04
5872 Artikel
ModeratorIn
[Homepage]
user image
Was mir spontan dazu einfällt: STDOUT und STDERR merken, in Datei umleiten, hitnerher zurücksetzen und Dateien entsorgen. Aber das kann gut noch viel eleganter gehen.
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
sepp
 2006-04-01 03:17
#64246 #64246
User since
2006-03-31
2 Artikel
BenutzerIn
[Homepage] [default_avatar]
Ja, das geht auch eleganter. Falls dir POE fuer diese Aufgabe etwas zu ueberladen scheint, dann kannst du etwas aehnliches auch mit select() machen:

Code: (dl )
1
2
3
4
5
6
7
8
9
my $code = 'print "hallo welt\n"; print "test\n\n"';

open(my $fh, ">", \my $out); # 'in memory' filehandle
my $old = select($fh); # default filehandle ist jetzt $fh
eval $code; # sollte klar sein
select($old); # default filehandle ist jetzt wieder STDOUT
close($fh); # der schoenheit halber

print "Das hier befindet sich in out:\n$out"
frodus
 2006-04-01 14:59
#64247 #64247
User since
2003-09-26
147 Artikel
BenutzerIn
[default_avatar]
Danke genau das was ich gesucht habe!

/Frodus
Crian
 2006-04-04 15:29
#64248 #64248
User since
2003-08-04
5872 Artikel
ModeratorIn
[Homepage]
user image
Ja sepp, das ist genau das was ich beschrieb... aber wie gesagt, es mag einen eleganteren Weg geben.
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
<< >> 5 Einträge, 1 Seite



View all threads created 2006-03-31 17:24.