Hi,
auch wenn solche Fragen hier nicht so gern gesehen sind - ich such mir nen Affen und find's auch nach 2h googeln nicht.
Warum geht das da nicht:
my %aut = ();
$aut{lang} = "EN;EN DE;DE";
$aut{mod}{EN} = "define;Define edit;Edit";
$aut{mod}{EN}{help} = "Select if you wish to create or update a definition.";
$aut{type}{EN} = "at;time-driven notify;event-driven";
Meldung:
Can't use string ("define;Define edit;Edit") as a HASH ref while "strict refs" in use
In FHEMWEB & Co wird dieses Konstrukt allenthalben verwendet - warum wird die Schreibweise hier als HASH-ref interpretiert statt als Wert?
Wie wär's richtig?
Vielen Dank schon im Voraus für eure Tipps,
Uli
Hallo Uli,
> $aut{mod}{EN} = "define;Define edit;Edit";
> $aut{mod}{EN}{help} = "Select if you wish to create or update a definition.";
Mit der ersten Zeile legst Du fest, dass $aut{mod}{EN} ein String ist. Bei der Zweiten nimmst Du an, dass $aut{mod}{EN} ein Hash ist, und versuchst was reinzuschreiben. Das ist equivalent mit:
"define;Define edit;Edit"{help} = "Select...";
Das geht so nicht (ein String it kein Hash oder Hash-Pointer, siehe Fehlermeldung), und sollte eher so geschrieben werden:
$aut{mod}{EN}{cmd} = "define;Define edit;Edit";
$aut{mod}{EN}{help} = "Select if you wish to create or update a definition.";
Gruss,
Rudi
Hallo Rudi,
Das ist so einfach wenn man's durchschaut bzw. erklärt bekommt...
vielen Dank für die Erklärung!
LG, Uli