FHEM Forum

FHEM => Anfängerfragen => Thema gestartet von: Stromschiene am 23 Februar 2015, 09:49:17

Titel: Pearl Variable mit Konstante addieren
Beitrag von: Stromschiene am 23 Februar 2015, 09:49:17
Hallo rundherum:

Ich habe es bereits geschafft, als Pearl - Anfänger FS20 on-vor-timer mit einer Variablen zu verknüpfen.
Also so:

{fhem("set R_zu_k  5")}
{fhem("set R_OG_AB on-for-timer $value{R_zu_k}")}

Das ergibt: "on-for-timer 5", und das macht Fhem auch brav.

Ich möchte aber zu der Variablen "R_zu_k", die Konstante 1 addieren.
Also sinngemäß:

{fhem("set R_OG_AB on-for-timer $value{R_zu_k}+1")}

oder on-for-timer (5+1)   = on-for-timer 6

Nur da versteht er mich nicht...
Wie ist da die richtige Syntax?

Kann mir da wer helfen?
Ich  habe zwar schon im Netz nach der Syntax gesucht, aber nichts brauchbares gefunden.
Hat dazu jemand einen Anfänger-Link für mich?
mfg


Titel: Antw:Pearl Variable mit Konstante addieren
Beitrag von: betateilchen am 23 Februar 2015, 10:00:20
$value ist deprecated und sollte nicht mehr verwendet werden.

Probier mal:



{my $t = Value('R_zu_k') + 1;; fhem("set R_OG_AB on-for-timer $t")}



Achja: es heißt perl, nicht pearl ;)
Titel: Antw:Pearl Variable mit Konstante addieren
Beitrag von: Stromschiene am 24 Februar 2015, 10:22:02
Danke, das funktioniert so, SUPER!

Gibt es irgendwo im Netz eine Anleitung die beschreibt warum das genau so ist?
Ich will Dich nicht wegen jeder Rechenoperation fragen müssen.

Hundert mal: Perl, Perl, Perl, usw..........

mfd
Titel: Antw:Pearl Variable mit Konstante addieren
Beitrag von: nesges am 24 Februar 2015, 11:10:41
Das liegt daran, wie Perl Strings interpretiert. Vereinfacht gesagt: Perl ist schon verdammt großzügig bei der Interpretation von Variablennamen innerhalb eines Strings, aber Rechenoperationen werden nicht als solche erkannt, sondern wörtlich genommen. IOW: Eine Rechenoperation gehört nicht in Anführungszeichen.

Für die Grundlagen empfehle ich das "Lama-Buch": Einführung in Perl, ISBN 389721105X
Titel: Antw:Pearl Variable mit Konstante addieren
Beitrag von: betateilchen am 24 Februar 2015, 11:10:49
Zitat von: Stromschiene am 24 Februar 2015, 10:22:02
eine Anleitung die beschreibt warum das genau so ist?

Das steht in jedem perl-Programmierhandbuch, meistens irgendwo in den ersten drei Kapiteln.