FHEM Forum

FHEM => Anfängerfragen => Thema gestartet von: sigma415 am 06 April 2020, 09:09:54

Titel: Commandref at-Befehl: if Syntax
Beitrag von: sigma415 am 06 April 2020, 09:09:54
Hallo,

in der Commanref für den at-Befehl steht bei den Beispielen eine für mich etwas merkwürdige if-Syntax:

# Only do this on weekend
    define a12 at +*{sunset_rel()} { fhem("set lamp on-till 23:00") if($we) }



Kann mir bitte jemand das an den Schluß gestelllte "if" erklären ?
Titel: Antw:Commandref at-Befehl: if Syntax
Beitrag von: herrmannj am 06 April 2020, 09:15:38
Die egschweiften Klammern {...} sind ein perl Befehl und dort kann man das if ans Ende schreiben. $we is eine Variable, true am Wochenende, sonst false.


Den Ausdruck kann man mit gleicher Funktion auch so schreiben:

define a12 at +*{sunset_rel()} {
  if ($we) {
    fhem("set lamp on-till 23:00")
  };
};
Titel: Antw:Commandref at-Befehl: if Syntax
Beitrag von: sigma415 am 08 April 2020, 00:12:04
Danke für die Erläuterung.
Perl ist immer wieder für Überraschungen gut ...  ;)
Titel: Antw:Commandref at-Befehl: if Syntax
Beitrag von: Prof. Dr. Peter Henning am 08 April 2020, 16:53:26
ZitatPerl ist immer wieder für Überraschungen gut ...
Wieso Überraschungen? Das ist schon sehr lange Bestandteil der Perl-Syntax, ich glaube schon ca. 20 Jahre.

LG

pah