Thread Switch (5 answers)
Opened by havi at 2003-10-02 12:30

Strat
 2003-10-02 12:50
#59952 #59952
User since
2003-08-04
5246 Artikel
ModeratorIn
[Homepage] [default_avatar]
[quote=havi,02.10.2003, 10:30][/quote]
Bei 1. Alternative ohne eval muss man sich halt bewusst sein, dass die Hashwerte von %switch die Returncodes der Funktionen sind, d.h. dass die Funktionen schon beim Programmstart ausgefuehrt werden.
Wenn sie erst spaeter ausgefuehrt werden sollen (z.B. zur Programmsteuerung), dann koenntest du dafuer Referenzen verwenden:
Code: (dl )
1
2
3
4
5
6
7
8
9
10
11
12
13
14
my %switch = ( 
1 => \&function1,
2 => \&function2,
4 => \&function3,
default => \&irgendwas,
);

my $key = 1;
if ($key and exists $switch{$key}) {
$switch{$key}->($params); # erst jetzt wird es ausgefuehrt
}
else { # default, wenn noetig
$switch{'default'}->($params);
}
perl -le "s::*erlco'unaty.'.dk':e,y;*kn:ai;penmic;;print"
http://www.fabiani.net/

View full thread Switch