Hauptmenü

Probleme mit Perl-Array

Begonnen von Icinger, 27 Februar 2014, 08:22:29

Vorheriges Thema - Nächstes Thema

Icinger

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
Verwende deine Zeit nicht mit Erklärungen. Die Menschen hören (lesen) nur, was sie hören (lesen) wollen. (c) Paulo Coelho

betateilchen

was passiert, wenn Du "Ein" übergibst?
-----------------------
Formuliere die Aufgabe möglichst einfach und
setze die Lösung richtig um - dann wird es auch funktionieren.
-----------------------
Lesen gefährdet die Unwissenheit!

Icinger

2014.02.27 08:33:50 5: Chromoflex sending Bareword "Ein" not allowed while "strict subs" in use at (eval 561) line 1.
Verwende deine Zeit nicht mit Erklärungen. Die Menschen hören (lesen) nur, was sie hören (lesen) wollen. (c) Paulo Coelho

betateilchen

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.
-----------------------
Formuliere die Aufgabe möglichst einfach und
setze die Lösung richtig um - dann wird es auch funktionieren.
-----------------------
Lesen gefährdet die Unwissenheit!