Thread Regexes: Geschwindigkeitsoptimierung
(13 answers)
Opened by GoodFella at 2007-04-06 19:31
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 |