Schrift
[thread]529[/thread]

Array + Dateien (Seite 2)



<< |< 1 2 >| >> 12 Einträge, 2 Seiten
kristian
 2005-07-20 04:40
#5287 #5287
User since
2005-04-14
684 Artikel
BenutzerIn
[Homepage] [default_avatar]
Hallo
Ich verstehe, dass man einem Array über das man iteriert keine Elemente wegnehmen sollte, steht auch irgendwo in perldoc.
Jetzt frage ich mich, was bei reverse passiert. Ich behaupte mal blind, wir erhalten dadurch ein anonymes Array über welches wir iterieren. Soweit sogut, nur wie bringe ich da das splice() ein.
Wäre es nicht sinniger, eine Kopie erstellen, über diese zu iterieren und bei einer Bedingung die zu splice führt abzubrechen, die Kopie mit dem geänderten Array abzugleichen und das Ganze zu restarten?
Ich weiß nicht, wo es wirklich hingehen soll, bzw. in welche Richtung du denkst, aber die Lösung in:
Text::Context::EitherSide
ist IMHO sehr sehenswert, wenn auch ganz anders ;-)

Gruß Kristian

EDIT: Das Ganze hat mit der Frage des OP nichts zu tuen!\n\n

<!--EDIT|kristian|1121820250-->
esskar
 2005-07-20 09:19
#5288 #5288
User since
2003-08-04
7321 Artikel
ModeratorIn

user image
hmm; neustarten ist nie gut; dann geht dir die laufzeit flöten

Code: (dl )
1
2
3
4
5
6
7
8
9
10
11
12
13
my $idx = 0;
my $size = scalar @fileIn;
my $matching = 0;
while($idx < $size) {
 if($fileIn[$idx] =~ /"(.*)","(.*)"/) {              
    if($1 eq $suchen) {                              
       $matching = 1; # "true" finde ich hier doof
       # du willst doch nur eine Zeile loeschen, oder?              
       splice @fileIn, $idx, 1;
       $size--;              
 } else {
     $idx++;                              
}


und wenn man es richtig machen will, liest man nicht alle Zeilen auf einmal ein, sondern nur die, die man braucht

Code: (dl )
1
2
3
4
5
6
7
8
9
10
11
my @fileIn = ();
if(open(INPUTFILE,"defs.cfg")) {
   while(<INPUTFILE>) {
      next unless /"(.*)","(.*)"/;
      push @fileIn, $_;
   }
   close(FILE);
}
if(scalar @fileIn) { # ersetzt $matching eq 'true'
} else {
}


HTH\n\n

<!--EDIT|esskar|1121836832-->
<< |< 1 2 >| >> 12 Einträge, 2 Seiten



View all threads created 2005-07-19 01:24.