Autor Thema: hash-Hilfe  (Gelesen 2371 mal)

Offline UliM

  • Developer
  • Hero Member
  • ****
  • Beiträge: 2711
hash-Hilfe
« am: 03 März 2013, 21:33:17 »
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
RPi4/Raspbian, CUL V3 (ca. 30 HomeMatic-devices), LAN (HarmonyHub, alexa etc.).  Fördermitglied des FHEM e.V.

Offline rudolfkoenig

  • Administrator
  • Hero Member
  • *****
  • Beiträge: 24493
Aw: hash-Hilfe
« Antwort #1 am: 04 März 2013, 11:59:48 »
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

Offline UliM

  • Developer
  • Hero Member
  • ****
  • Beiträge: 2711
Aw: hash-Hilfe
« Antwort #2 am: 04 März 2013, 16:12:08 »
Hallo Rudi,

Das ist so einfach wenn man's durchschaut bzw. erklärt bekommt...

vielen Dank für die Erklärung!

LG, Uli
RPi4/Raspbian, CUL V3 (ca. 30 HomeMatic-devices), LAN (HarmonyHub, alexa etc.).  Fördermitglied des FHEM e.V.