PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : array hochzählen lassen


K21
18.04.2002, 09:49
Hi!
Nochmal eine Frage..
und zwar möchte ich wie im folgenden Beispiel gezeigt mehrere Dateien öffnen (asc.1 - asc.4) und dann in die arrays @errors1 - @errors4 reinschreiben...
leider funktioniert das nicht wie im folgenden quellcode, denn man kann ja nicht in nen array gleichzeitig ne variable reinknallen (@errors$i)
hat jemand nen plan wie es funktionieren könnte? der quellcode wird letztendlich noch 130 zeilen lang und dann ist es doch angenehmer nur 130 statt 520 Zeilen zu haben :)


for ($i=0;$i<5;$i++)
{
open(ERROR$i, &quot;<asc.$i&quot;);
@errors$i = <ERROR$i>;
close(ERROR$i);
print @errors$i;
}


Alamar
18.04.2002, 18:35
ich weiss ned ob das geht kanns jetzt auch grad ned ausprobieren aber du kannsts ja mal,
wenn du n array machst
@bla in dem dann steht
$bla[0] hat den wert @error1 und @error1 wird gefuellt
wenn man $bla[$i] = <ERROR>;
weiss ned ob das geht is gerade meinem hirnentsprungen.

Jonas
18.04.2002, 19:11
Probiers mal so:

my $cmd = &quot;my \@errors&quot; . $i . &quot;= <ERROR>&quot;;
for ($i=0;$i<=4;$i++)
{
open(ERROR, &quot;<asc.$i&quot;);
eval($cmd);
close(ERROR);
}

K21
25.04.2002, 11:28
vielen vielen dank!!
eval kannte ich noch gar nicht, aber ist ne spitzensache!!
habs jetzt insgesamt so gelöst (etwas von beiden bei *g*):

@errarr=(&quot;x&quot;, &quot;\@error1=<ERROR>\;&quot;, &quot;\@error2=<ERROR>\;&quot;, &quot;\@error3=<ERROR>\;&quot;, &quot;\@error4=<ERROR>\;&quot;);
for ($i=0;$i<=4;$i++)
{
$cmd = $errarr[$i];
open (ERROR, &quot;ascreens.$i&quot;);
eval($cmd);
close (ERROR);
}
print @error1;
print @error2;
print @error3;
print @error4;

dickes thx an euch beide!!

Jonas
25.04.2002, 16:19
och dazu sind wir da :D