Umleitung STDIN in Variable geht nicht
am 14.07.2006 11:25:22 von Frank KulowHallo Perler,
wo ist der Fehler oder gehts nicht
------
#a.pl
use strict;
my$a;
##1 Umleitung STDOUT in Variable geht nicht
open my $oldout, ">&STDOUT" or die "Can't dup STDOUT: $!";
open(STDOUT,'>',\$a);
print "t1";#druckt auf den Bildschirm
close STDOUT;
open STDOUT, ">&", $oldout or die "Can't dup \$oldout: $!";
open(AA,">a.tmp");
print AA $a;
close AA; #a.tmp ist leer
print "\nEnde t1\n";
##2 Umleitung STDOUT in anderes Filehandle geht
open my $oldout, ">&STDOUT" or die "Can't dup STDOUT: $!";
open(STDOUT,'>',"b.tmp");
print "t2";
close STDOUT;#b.tmp enthält t2
open STDOUT, ">&", $oldout or die "Can't dup \$oldout: $!";
print "\nEnde t2\n";
##3 Nutzung einer Variable als Filehandle geht
open(OUT,'>',\$a);
print OUT "t3";
close OUT;
open(AA,">c.tmp");
print AA $a;
close AA;#c.tmp enthält t3
print "\nEnde t3\n";
--------------
Ausgabe:
-------------
$ perl a.pl
t1
Ende t1
Ende t2
Ende t3
$ cat a.tmp
$ cat b.tmp
t2
$ cat c.tmp
t3
$
------
Frank