Schrift
[thread]6341[/thread]

abgedrehtes problem mit switch: oder bin ich blind? (Seite 3)



<< |< 1 2 3 4 5 6 ... 8 >| >> 72 Einträge, 8 Seiten
ptk
 2004-06-18 13:47
#83450 #83450
User since
2003-11-28
3645 Artikel
ModeratorIn
[default_avatar]
In perlsyn.pod werden mehrere Loesungen gezeigt, aber keine wird so richtig empfohlen. TIMTOWTDI.
sri
 2004-06-18 13:50
#83451 #83451
User since
2004-01-29
828 Artikel
BenutzerIn
[Homepage] [default_avatar]
[quote=Dirk,17.06.2004, 22:54]Und was ist mit labels ? :p
Soweit ich weiß wird das doch als switch ersatz empfohlen ?
SWITCH: if(){
if(){
last SWITCH;
}
}
mfg Dirk[/quote]
So ähnlich macht das Switch.pm ;)
pq
 2004-06-30 14:07
#83452 #83452
User since
2003-08-04
12209 Artikel
Admin1
[Homepage]
user image
[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
Code: (dl )
1
2
3
4
5
%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 =)
Always code as if the guy who ends up maintaining your code will be a violent psychopath who knows where you live. -- Damian Conway in "Perl Best Practices"
lesen: Wiki:Wie frage ich & perlintro Wiki:brian's Leitfaden für jedes Perl-Problem
Gast Gast
 2004-06-30 22:28
#83453 #83453
@pq
Ich habe behauptet dass (unter mod_perl) der Code nur einmal 'compiliert' wird.
Von 'Zuweisungen' war nicht die Rede ...
Sorry dass ich das Forum mit meinem, wie Du schreibst, 'quatsch' belästigt habe.

uuunnnnddd
Tschüß
pq
 2004-07-01 01:31
#83454 #83454
User since
2003-08-04
12209 Artikel
Admin1
[Homepage]
user image
@dieter: ich hab jedenfalls was anderes aus deinen antworten rausgelesen.
aber bitte nicht gleich persönlich angegriffen fühlen, sonst geht's
dahin =)
Always code as if the guy who ends up maintaining your code will be a violent psychopath who knows where you live. -- Damian Conway in "Perl Best Practices"
lesen: Wiki:Wie frage ich & perlintro Wiki:brian's Leitfaden für jedes Perl-Problem
steffenw
 2004-07-03 00:10
#83455 #83455
User since
2003-08-15
692 Artikel
BenutzerIn
[Homepage] [default_avatar]
Was man in einen BEGIN-Block schreibt, was macht mod_perl dann, nur einmal oder immer wieder?
$SIG{USER} = sub {love 'Perl' or die};
Strat
 2004-07-03 00:59
#83456 #83456
User since
2003-08-04
5246 Artikel
ModeratorIn
[Homepage] [default_avatar]
Ich denke, dass der code des BEGIN-Blockes (zumindest bei Apache1.3) im Shared segment nur einmal compiliert wird (also beim serverstart oder -restart), und vermutlich auch nur einmal ausgefuehrt wird (und zwar auch beim Serverstart; bin mir bei BEGIN-Bloecken bei mod_perl nicht sicher, weil ich die praktisch nie verwende, denke aber, zumindest bei Apache::Request bzw. eigenen Handlern und Apache::Registry muesste das stimmen; Apache::PerlRun weiss ich nicht, dafuer weiss ich es bei PerlRunOnce ;-) )...
perl -le "s::*erlco'unaty.'.dk':e,y;*kn:ai;penmic;;print"
http://www.fabiani.net/
Gast Gast
 2004-07-03 03:57
#83457 #83457
[quote=steffenw,02.07.2004, 22:10]Was man in einen BEGIN-Block schreibt, was macht mod_perl dann, nur einmal oder immer wieder?[/quote]
BEGIN { }
ist nichts anderes als eine ganz normale Subroutine.
Der Block wird also nicht anders compiliert als jeder andere Teil des Scripts auch.
sri
 2004-07-03 06:05
#83458 #83458
User since
2004-01-29
828 Artikel
BenutzerIn
[Homepage] [default_avatar]
[quote=Dieter,03.07.2004, 01:57][quote=steffenw,02.07.2004, 22:10]Was man in einen BEGIN-Block schreibt, was macht mod_perl dann, nur einmal oder immer wieder?[/quote]
BEGIN { }
ist nichts anderes als eine ganz normale Subroutine.
Der Block wird also nicht anders compiliert als jeder andere Teil des Scripts auch.[/quote]
Ich werde das jetzt nicht korrigieren, aber fairneshalber gebe ich dir einen Hinweis. "perldoc perlmod"
renee
 2004-07-03 09:40
#83459 #83459
User since
2003-08-04
14371 Artikel
ModeratorIn
[Homepage] [default_avatar]
Dann gebe ich noch den Link dazu: http://www.perldoc.com/perl5.8....and-END
OTRS-Erweiterungen (http://feature-addons.de/)
Frankfurt Perlmongers (http://frankfurt.pm/)
--

Unterlagen OTRS-Workshop 2012: http://otrs.perl-services.de/workshop.html
Perl-Entwicklung: http://perl-services.de/
<< |< 1 2 3 4 5 6 ... 8 >| >> 72 Einträge, 8 Seiten



View all threads created 2004-06-16 21:56.