FHEM Forum

FHEM => fhem-users => Thema gestartet von: Tobias am 02 September 2011, 13:54:55

Titel: [Fehler] Global symbol "@mydata" requires explicit package name at ....
Beitrag von: Tobias am 02 September 2011, 13:54:55
                                                   

Hi,

ich habe ein notify Event angelegt und darin eine Variable mit @@
angelegt, trotzdem gibts einen Fehler bei der Ausführung und ich finde
ihn nicht.

define BewNotify notify BewNotify {\
 if($value{Bodenfeuchtesensor} eq "on") {\
     my @@mydata = split(" ",'%EVENT');;\
     fhem "set $mydata[0] on-for-timer $mydata[1]";;\
 } else {\
     fhem "set $mydata[0] off"\
 }\
}

fhem> trigger BewNotify Bewaesserung_Ventil1 1920

Global symbol "@mydata" requires explicit package name at (eval 21)
line 1.

--
To unsubscribe from this group, send email to
fhem-users+unsubscribe@googlegroups.com
Titel: Re: Global symbol "@mydata" requires explicit package name at ....
Beitrag von: Tobias am 03 September 2011, 07:00:50
                                                   

Hat keiner eine Ahnung? Ich hab schon unzählige Beispiele
durchgeackert aber danach müsste der Code richtig sein....  Kann mir
aber auch nicht vorstellen das da ein Bug in fhem drin sein sollte...

--
To unsubscribe from this group, send email to
fhem-users+unsubscribe@googlegroups.com
Titel: Re: [Fehler] Global symbol "@mydata" requires explicit package name at ....
Beitrag von: rudolfkoenig am 03 September 2011, 07:58:42
                                                   

> define BewNotify notify BewNotify {\
>  if($value{Bodenfeuchtesensor} eq "on") {\
>      my @@mydata = split(" ",'%EVENT');;\
>      fhem "set $mydata[0] on-for-timer $mydata[1]";;\
>  } else {\
>      fhem "set $mydata[0] off"\
>  }\
> }

@mydata is lokal in der "if" Teil des Ausdrucks, und ist unbekannt im "else".

--
To unsubscribe from this group, send email to
fhem-users+unsubscribe@googlegroups.com
Titel: Re: [Fehler] Global symbol "@mydata" requires explicit package name at ....
Beitrag von: Tobias am 03 September 2011, 13:17:10
                                                   

Ich habe jetzt die Deklaration von @@v1 vor dem if-Zweig.

Allerdings, wenn ich daraus eine globale Variable machen möchte und
"my" weglasse bekomme ich wieder den selben fehler:

2011.09.03 13:10:45 3: Global symbol "@v1" requires explicit package
name at (eval 49) line 1.
Global symbol "@v1" requires explicit package name at (eval 49) line
1.
Global symbol "@v1" requires explicit package name at (eval 49) line
1.
Global symbol "@v1" requires explicit package name at (eval 49) line
1.

> @mydata is lokal in der "if" Teil des Ausdrucks, und ist unbekannt im "else".

--
To unsubscribe from this group, send email to
fhem-users+unsubscribe@googlegroups.com
Titel: Re: Re: [Fehler] Global symbol "@mydata" requires explicit package name at ....
Beitrag von: rudolfkoenig am 03 September 2011, 13:44:22
                                                   

> Allerdings, wenn ich daraus eine globale Variable machen möchte und
> "my" weglasse bekomme ich wieder den selben fehler:

Der Ansatz "daraus eine globale Variable machen" ist falsch.  Als globale
Variable koennen die at/notify Ausdruecke Eintraege in %data verwenden.  Diese
Perl Ausdruecke werden per eval ausgewertet, siehe auch perldoc -f eval

--
To unsubscribe from this group, send email to
fhem-users+unsubscribe@googlegroups.com