FHEM Forum

FHEM => Anfängerfragen => Thema gestartet von: Icinger am 27 Februar 2014, 08:22:29

Titel: Probleme mit Perl-Array
Beitrag von: Icinger am 27 Februar 2014, 08:22:29
Wunderschönen Guten Morgen,

ich hab wieder mal ein kleiner Perl-Problem.

in einer ECMD.classdef habe ich folgendes:
set NamedColor params nam
set NamedColor cmd {my %colors=('Rot' => 'FF0000','Hellrot' => 'FF1400','Hellrot1' => 'FF2800');;my $arg=$colors{%nam};;ChromoColor(AttrVal("%NAME","Chromo_Adr",'000000'),hex(substr($arg,0,2)),hex(substr($arg,2,2)),hex(substr($arg,4,2)),255)}

set cmd params comnd
set cmd cmd {my %commands=('Aus' => '0','Speichern&Aus' => '1','Ein' => '2');;my $d=$commands{%comnd};;if (!defined($d)){$d=%comnd};;ChromoCommand(AttrVal("%NAME","Chromo_Adr",'000000'),$d)}


Der NamedColor-Teil funktioniert (wird "Rot" übergeben, sucht sich perl aus dem Array das "FF0000" raus)

Der zweite Teil klappt leider nicht. Wird "Aus" übergeben, bekomme ich im Log folgende Meldung:
2014.02.27 08:10:23 5: Chromoflex sending Bareword "Aus" not allowed while "strict subs" in use at (eval 60) line 1.

Wer kann mir da bitte mal auf die Sprünge helfen?

Thx, Ici
Titel: Antw:Probleme mit Perl-Array
Beitrag von: betateilchen am 27 Februar 2014, 08:27:45
was passiert, wenn Du "Ein" übergibst?
Titel: Antw:Probleme mit Perl-Array
Beitrag von: Icinger am 27 Februar 2014, 08:32:27
2014.02.27 08:33:50 5: Chromoflex sending Bareword "Ein" not allowed while "strict subs" in use at (eval 561) line 1.
Titel: Antw:Probleme mit Perl-Array
Beitrag von: betateilchen am 27 Februar 2014, 09:58:34
Hast Du mal ohne das if(!defined...) getestet? Für mich sieht das so aus, als ob genau an der Stelle der falsche Wert nach $d übertragen wird.