mehrzeilige Ausgabe eines fhem-Systemaufrufs in Array packen - warum @@ und %%

Begonnen von wkarl, 05 August 2014, 14:30:49

Vorheriges Thema - Nächstes Thema

wkarl

Hallo,

meine Perl-Kenntnisse sind besser geworden, anscheinend aber noch nicht gut genug.

fhem("get WasteCal text all")
liefert (auf CLI)
09.08.14 00:00 Papier
09.08.14 00:00 Bio
11.08.14 00:00 Recycle
18.08.14 00:00 Rest
25.08.14 00:00 Recycle
25.08.14 00:00 Bio
01.09.14 00:00 Rest
08.09.14 00:00 Bio
08.09.14 00:00 Recycle


Die Frage ist nun - wie bekomme ich die Ausgabe zeilenweise in ein Array?

Danke und ciao
walter
FHEM 5.7 & TabletUI 2.2 auf Fedora22 Server auf NUC5i5RYK
CUL 868 > FAST EnergyCam
HMLAN > HomeMatic TCs & VDs, Bewegungsmelder, Schalter, Taster, Steckdosen

betateilchen

-----------------------
Formuliere die Aufgabe möglichst einfach und
setze die Lösung richtig um - dann wird es auch funktionieren.
-----------------------
Lesen gefährdet die Unwissenheit!

wkarl

Danke für die Antwort. Nun habe ich hier ein Problem zu dem ich keine Lösung finde.

WasteCal:all:..+ {
fhem("get WasteCal text all");
}

liefert im Log das erwartete Ergebnis.
2014.08.06 06:28:34.877 3: get WasteCal text all : 09.08.14 00:00 Papier
09.08.14 00:00 Bio
11.08.14 00:00 Recycle
18.08.14 00:00 Rest
25.08.14 00:00 Bio
...

Soll die Ausgabe in das array geschrieben werden
WasteCal:all:..+ {
my @textarray = split /\n/, fhem("get WasteCal text all");
}

steht im Log
2014.08.06 06:33:17.238 3: WasteBoxSchedule return value: No such class WasteCaltextarray at (eval 672) line 2, near "{
my WasteCaltextarray"
syntax error at (eval 672) line 2, near "my WasteCaltextarray ="

Ich weiß nicht was hier der Fehler ist.

ciao walter
FHEM 5.7 & TabletUI 2.2 auf Fedora22 Server auf NUC5i5RYK
CUL 868 > FAST EnergyCam
HMLAN > HomeMatic TCs & VDs, Bewegungsmelder, Schalter, Taster, Steckdosen

wkarl

#3
Hallo,

nach umfassenden Probieren funktioniert nun folgendes
my @@schedarr = split("\n", fhem("get WasteCal text all"));
Warum muss ich hier das @ doppeln?

Edit: Jetzt muss ich auch noch die % doppeln
my $tomorrow = sprintf("%%02d.%%02d.%%02d", $mday + 1, $mon + 1, $year + 1900);

Muss das wirklich so sein? Ist das nicht vereinfacht worden? (War ja früher mal so)

ciao walter
FHEM 5.7 & TabletUI 2.2 auf Fedora22 Server auf NUC5i5RYK
CUL 868 > FAST EnergyCam
HMLAN > HomeMatic TCs & VDs, Bewegungsmelder, Schalter, Taster, Steckdosen