Thread Warum erzeugt ( $5 // 3 ) ein Syntaxfehler? (15 answers)
Opened by SMarc at 2017-02-05 17:45

Gast wer
 2017-02-06 01:17
#186042 #186042
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)

View full thread Warum erzeugt ( $5 // 3 ) ein Syntaxfehler?