[quote=Dieter,17.06.2004, 15:33]Unter mod_perl bleibt der Hash (nach dem ersten Programmstart) bestehen; der if-elsif-Block natürlich auch.
Benchmark:
ist nicht erforderlich - der Zugriff auf ein Hash-Element ist 'immer' schneller als der Durchlauf eines if-elsif-Blocks.[/quote]
sorry, aber das ist quatsch. pauschal zu sagen, dass
%hash = (
a => 1,
b => 2,
...
);
unter mod_perl nur einmal ausgeführt wird (und genau das hast du
in anderen worten behauptet), ist falsch.
dieser code wird jedesmal ausgeführt, solange er im handler steht.
auch wenn %hash global ist, passiert doch hier eine zuweisung, und warum
sollte perl die nur einmal ausführen? sie wird also jedesmal ausgeführt und
verbraucht cpu. was nun schneller ist, kann man nur durch benchmarking
herausfinden.
man kann es sich natürlich auch einfach machen und einfach behaupten,
ein hash-zugriff sei schneller als if-elsif. das macht die aussage aber nicht wahrer.
es kommt zudem sehr darauf an, wieviele fälle es gibt (d.h. wieviele elemente
der hash hat) und welcher fall wie oft dran kommt.
sorry, dass ich das alte thema nochmal aufgewärmt habe; gehe gerade alte
threads durch und konnte mich hier nicht zurückhalten =)