Thread Warum erzeugt ( $5 // 3 ) ein Syntaxfehler?
(15 answers)
Opened by SMarc at 2017-02-05 17:45
Switch ist ein Source-Parser. Das kann zu Problemen führen, Wie hier zu sehen. Wahrscheinlich "//" wird nicht als "Vergleichsbefehl" erkannt sondern als Regex. Was dann zu Problemen führen kann.
Ich würde das "switch" so machen: Code (perl): (dl
)
1 2 3 4 5 6 7 8 9 10 11 my $r = undef; my %codes = ( hour => sub{ $r = $notifytable_hour }, hfhour => sub{ $r = $notifytable_hour << 1 + ( $notifytable_min > 29 ? 1 : 0 ) }, qhour => sub{ $r = $notifytable_hour << 2 + floor( $notifytable_min/15 ) }, minute => sub{ $r = $notifytable_min }, 0 => sub{ $r = $notifytable_min }, ); $codes->{$rdg}->() if($codes->{$rdg}) ; Last edited: 2017-02-06 09:25:15 +0100 (CET) |