Servus und vielen dank das klappt ja super!
Es klappt zwar aber ich verstehs nicht ganz ;-)
Es funktioniert doch folgender maßen:
Datei wird geöffnet mit tie, datei wird durchlaufen und die änderungen in @splices gespeichert
Nein. Es wird $cnt in @splacers angefügt.
$cnt enthält die indexnummer des gerade durchlaufenen Arrayelements.
Diese indexnummer brauche ich in der zweiten foreach Schleife, um sie dann in splice() zu verwenden.
der counter gibt an wie oft in der datei das suchende stück enthalten ist
Nein, der Counter ist ein Schleifenzähler. Er wird unabhängig vom Erfolg oder Misserfolg hochgezählt. Dadurch ist $cnt immer identisch mit der Indexnummer des bearbeiteten filearray elements.
und gibt es an @splices (wenn jetzt also 8 leerzeichen enthalten sind wird dank $cnt nicht nur eines gelöscht sondern 8 also ist $cnt = 8 versteh ich das richtig).
Nein für äcnt ist irrelevant, was im Arrayelement drinsteht.
Wenn in der IfPrüfung die eine von dir zu bestimmende Bedingung erfüllt wird, dass wird der Index des gerade bearbeiteten Arrayelements zu @splicers hinzugefügt.
Danach wird die schleife beendet und die @splices schleife gestartet in der "splicet" man und es wird in der datei gespeichert?
Apropo mir scheint da noch etwas nicht klar zu sein wenn ich eine zeile lösche ist sie zwar weg aber die zeile existriert noch nun möcht ich diese zeile ganz löschen und eigentlich mach ich es doch richtig und in google find ich auch das gleiche aber es klappt einfach nicht hier ein codeschnipsel:
for( @dat ){
if($_ =~ m/^\s+/){
unshift( @splicers, $cnt );
}
$cnt++;
}
foreach( @splicers ){
splice( @dat, $_, 1);
}das klappt nicht aber auch das klappt nicht
Was meinst, du mit _es_ klappt nicht. Sofern deine IF bedingung erfüllt wird, wird genau das gemacht. Das Element wird aus @dat entfernt, und damit ist die Zeile bei untie dann gänzlich getilgt.
#mit tie geöffnet
for (@dat) {
s/^\s+//;
}
Du suchst nach Zeilen die mindestens ein Whitespace Zeichen enthalten. Das ist nicht das gleiche wie _leere zeile_
Eine Leere Zeile besteht aus einer Zeile, die nicht einmal Whitespace beinhaltet. Das solltest du im Quantifier berücksichtigen.
Was mach ich jezt schon wieder falsch?
Irgendwie lerne ich und lerne ich perl und weiss es aber wenn ich es anwende funktioniert nie was das macht keinen spaß mehr :-((
mfg Beat