Christian Kruse: Hat jemand Tipps zur Optimierung dieses (teil)scriptes?

Beitrag lesen

Hi,

@lst = grep(/$benutzer/,@zeilen);
[...]
push(@neu,grep(!/$benutzer/,@zeilen));

Zweimal die ganze Datei durchgreppen ist doch ziemlich aufwendig oder?

Naja, IMHO besser als die Liste durchzuschleifen.

Außerdem, so wie Du es machst auch ziemlich gefährlich. Was ist, wenn $benutzer in anderen Zeilen
irgendwoanders steht?

Das ist bei ihm auch nicht vorgesehen ;) da geht es auch _immer_ um $liste[2] ;) ergo ist es ein festes
Datenformat.

@lst = grep(/(.+){2}$benutzer/,@zeilen);

oder?

Wozu das?
grep(/$benutzer/,@zeilen)
durchsucht die gesamte Zeile nach einem String.
$string =~ /bla/;
durchsucht doch auch den gesamten String nach dem Pattern (in dem Fall "bla").

Und dann nochmals eine ziemlich komplexe Regex zum Counter-Erhöhen.

Komm, Komm, so komplex ist das nicht ;) und IMHO schneller als split() und dann wieder join()

Sieht zwar mächtig abgefahren aus,

nicht wirklich ;)

ob das eine Performancesteigerung bringt ist fraglich.

eben schon - es werden wirklich nur die gesuchten Zeilen bearbeitet und es wird nicht gesplittet und dann
wieder gejoint.

Nix für ungut

eh nicht ;)

mfg
CK1