Thread Regexes: Geschwindigkeitsoptimierung (13 answers)
Opened by GoodFella at 2007-04-06 19:31

PerlProfi
 2007-04-06 19:39
#75720 #75720
User since
2006-11-29
340 Artikel
BenutzerIn
[default_avatar]
Vielleicht bringt es ja was ein paar reguläre Ausdrücke in Variablen zu packen, dann müssten sie nicht immer neu ausgewertet werden.

Zum Beispiel könntest du aus:
Code (perl): (dl )
1
2
3
4
5
6
7
8
              #Vorname + Titel + Namensvorsatz:
              elsif ($ba_data{'vorname'} =~ /^\s*(.*?)[ ]+($search_pattern{'titel'})\s*$search_pattern{'name_vorsatz'}$/sio)
               {
               
 ($ba_data{'vorname'}, $ba_data{'titel'}, $ba_data{'name_vorsatz'}) = ($1, $2, $3);
               
 push(@ba_info, 'Namensvorsatz und Titel im Vornamen');
               }


Folgendes machen:
Code (perl): (dl )
1
2
3
4
5
6
7
8
9
10
11
12
13
# %search_pattern ist bereits bekannt,
# dieser Teil steht irgendwo, so das er nur einmal ausgeführt wird
my $regexp = qr/^\s*(.*?)[ ]+($search_pattern{'titel'})\s*$search_pattern{'name_vorsatz'}$/sio;

# dann später dein vergleich
#Vorname + Titel + Namensvorsatz:
              elsif ($ba_data{'vorname'} =~ $regexp)
               {
               
 ($ba_data{'vorname'}, $ba_data{'titel'}, $ba_data{'name_vorsatz'}) = ($1, $2, $3);
               
 push(@ba_info, 'Namensvorsatz und Titel im Vornamen');
               }


Bin mir aber nicht sicher ob das wirklich eine große Verbesserung wäre.

MfG

View full thread Regexes: Geschwindigkeitsoptimierung