Thread abgedrehtes problem mit switch: oder bin ich blind? (71 answers)
Opened by deepblack at 2004-06-16 21:56

Gast Gast
 2004-06-17 15:15
#83439 #83439
Code: (dl )
1
2
3
4
5
6
7
$foo = {
  'case1' => \&sub_1,
  'case2' => \&sub_2,
  'case3' => \&sub_3,
};

$foo->{$bar{'action'}}->();

Der Hash wird (gewöhnlich) bei jedem Durchlauf neu aufgebaut (unter mod_perl natürlich nicht).
Trotzdem läuft die 'case-like' Verzweigung per Hash, schneller als der if-elsif Block (es sei denn die erste if-Bedingung trifft sofort zu).
Aber mal davon abgesehen ...
jede ernstzunehmende Perl-Literatur distanziert sich in aller Form vom Einsatz eines if-elsif-Blocks.

Edit:
Wenn man mich fragen würde was schneller compiliert wird, ein if-elsif-Block oder ein Hash, so würde ich denn doch auf den Hash tippen.\n\n

<!--EDIT|Dieter|1087471321-->

View full thread abgedrehtes problem mit switch: oder bin ich blind?