Thread Suchen und ersetzen - möglichst schnell u. korrekt
(12 answers)
Opened by stb2050 at 2005-04-12 14:41 fehlt am anfang des scriptes... das solltest du dir angewoehnen, weil es dich 1. zum saubereren programmieren zwingt und 2. bei der fehlersuche extrem hilfreich ist @content =~ s.... funktioniert nicht, weil =~ die linke seite in einen skalaren kontext bringt und somit das pattern nur auf die anzahl der elemente der liste angewendet wird (z.B. 25 =~ s...) Code: (dl
)
s/.../.../ for @content; wuerde aber funktionieren der ersetzungscode klappt meistens, aber nicht immer: x) \u ist ein Sonderzeichen... du meinst wahrscheinlich /u ? x) wenn du anstelle von s/.../.../ s|...|...| verwendest, sparst du dir ein paar backslashes x) wenn z.B. in $username ein sonderzeichen vorkommt, wird das verwandelt (z.B. der punkt steht fuer ein (fast) beliebiges zeichen, und eine oeffnende klammer kann sogar einen fehler verursachen... also besser die $username mit \Q$username\E quoten, z.B. Code: (dl
)
$content =~ s|/userdaten/\Q$username\E/bilder|/userdaten/$userid/bilder|g; zur optimierung: 1. warum liest du die userdaten sortiert ein? brauchst du die sortierung, oder kannst du darauf verzichten? 2. du list alle dateinamen ein, scheinst aber immer nur einen zu brauchen... liest immer nur eine datei ein (while hat einen skalaren kontext) $a und $b als variablennamen besser nicht verwenden, weil die eigentlich fuer den sort-befehl reserviert sind, und von daher von "use strict;" nicht abgedeckt werden... und je sprechender ein variablenname ist, desto leichter versteht jemand (auch man selbst) das script... lediglich fuer Integer-Laufvariablen hat sich irgendwie $i, $j usw eingebuergert... ../userdaten/main ist IMHO ein Kandidat fuer eine eigene Variable... z.B. (mit Findbin machst du aus einem pfad, der relativ zum ausgefuehrten perlscript angegeben ist, einen absoluten, sodass du das script auch von ausserhalb des verzeichnisses ausfuehren kannst\n\n <!--EDIT|Strat|1113308290--> perl -le "s::*erlco'unaty.'.dk':e,y;*kn:ai;penmic;;print"
http://www.fabiani.net/ |