Pearl Variable mit Konstante addieren

Begonnen von Stromschiene, 23 Februar 2015, 09:49:17

Vorheriges Thema - Nächstes Thema

Stromschiene

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



betateilchen

$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 ;)
-----------------------
Formuliere die Aufgabe möglichst einfach und
setze die Lösung richtig um - dann wird es auch funktionieren.
-----------------------
Lesen gefährdet die Unwissenheit!

Stromschiene

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

nesges

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

betateilchen

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.
-----------------------
Formuliere die Aufgabe möglichst einfach und
setze die Lösung richtig um - dann wird es auch funktionieren.
-----------------------
Lesen gefährdet die Unwissenheit!