Thread Programmierstilfrage - "given - when" (4 answers)
Opened by Kuerbis at 2012-03-31 18:41

Kuerbis
 2012-04-01 08:41
#157155 #157155
User since
2011-03-20
942 Artikel
BenutzerIn
[default_avatar]
In diesem einfachen Beispiel hat es funktioniert.
Auf deiner verwiesen Seite habe ich zwei Alternativen gefunden:

Code (perl): (dl )
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
given ( $c ) {
    when ( 'a' ) {
        say 'a';
    }
    when ( 'b' ) {
        say 'b';
    }
    when ( $extra == 1 and $c eq 'd' ) {
        say 'd';
    }
    when ( $extra == 1 and $c eq 'e' ) {
        say 'e';
    }
    when ( 'z' ) {
        say 'z';
    }
    default {
        say 'something else';
    }
}

Diese Art finde ich schwerer zu warten und ist vermutlich langsamer.
Die zweite Alternative:

Code (perl): (dl )
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
given ( $c ) {
    when ( 'a' ) {
        say 'a';
    }
    when ( 'b' ) {
        say 'b';
    }
    when ( $extra == 1 ) {
        when ( 'd' ) {
            say 'd';
        }
        when ( 'e' ) {
            say 'e';
        }
        continue;
    }
    when ( 'z' ) {
        say 'z';
    }
    default {
        say 'something else';
    }
}


Dabei finde ich, dass man mit einem if Statement die Stelle schneller findet/besser erkennen kann. Außerdem kann man das continue nicht vergessen.

View full thread Programmierstilfrage - "given - when"