[quote=deepblack,16.06.2004, 20:28]ok und lösung?
einfach auf switch verzichten und lieber if nehmen? oder irgendwas was eleganter ist?[/quote]
1. Bug (falls es einer ist!) einkreisen und einen Report an Damian Conway und/oder die Perl5-Porters schicken.
2. switch durch if ersetzen, auch wenn es nicht ganz so schoen aussieht. Oder in einfachen Faellen ein Hash mit Code-Referenzen verwenden:
{
'c' => sub { ... mach was fuer c ... },
'q' => sub { &disconnect_db; print $clear; exit(); },
}->{$choice}->();
Oder man nimmt den folgenden Trick, um eine if-elsif-Kette etwas ruhiger aussehen zu lassen (man beachte, dass alle Bedinungen auf der gleichen Spalte beginnen):
if ($choice eq 'c') {
...
} elsif ($choice eq 'q') {
...
} elsif ($choice eq 'x') {
...
} else {
...
}
Um etwas Tipparbeit zu sparen, kann man ein
am Anfang einfuegen und dann mit $_ arbeiten.
3. Auf perl6 warten, da gibt es ein richtiges switch.