Thread Dynamisch in Filehandles printen (5 answers)
Opened by Aleks at 2007-03-16 15:11

betterworld
 2007-03-16 16:36
#75089 #75089
User since
2003-08-21
2614 Artikel
ModeratorIn

user image
Du kannst es auch so machen:
Code: (dl )
print {"S$_"} $string;


Aber was Du eigentlich brauchst, das sind lexikalische Filehandles und ein Array. Durchnumerieren von Variablen ist immer schlecht, weil es dazu doch Arrays gibt.
Also hier ein kleines Beispiel, um die Dateien "datei0", "datei1", "datei2" alle gleichzeitig zu oeffnen und dann etwas hineinzuschreiben:
Code: (dl )
1
2
3
4
5
6
7
8
9
10
11
12
13
my @array;
# Erst alle Dateien oeffnen
for my $number (0..2) {
open my $f, '>', "datei$number" or die "datei$number: $!";
# Schiebe das Handle in das Array
push @array, $f;
}

# Dann ueber alle Handles iterieren
for my $handle (@array) {
print $handle "text\n" or die $!;
close $handle or die $!;
}

(Das ist nur ein Beispiel... normalerweise wuerde man, wenn man in mehrere Dateien einen String reinschreiben will, eine Datei erst oeffnen, wenn man die vorherige geschlossen hat.)

View full thread Dynamisch in Filehandles printen