[gelöst] Perl -> 99_myUtils.pm -> Variablen exportieren -> our

Begonnen von GaiusMarius, 09 November 2022, 18:52:43

Vorheriges Thema - Nächstes Thema

GaiusMarius

Hallo allerseits, meine Perl-Kenntnisse reichen nicht aus, um mir meine Frage selbst beantworten zu können:

Habe ich in der 99_myUtils.pm zu exportierende, also dann z. B. in den Devices zur Verfügung stehende, Variablen richtig/schön programmiert?

99_myUtils.pm:package main;
use strict;
use warnings;
sub myUtils_Initialize($$) {my ($hash) = @_;}

our $ichBinDieVariableUmDieEsGeht = 'Inhalt';


In dem Device steht dann z.B.:
attr DEVICE stateFormat {$main::ichBinDieVariableUmDieEsGeht}

Nach etlichen gescheiterten Versuchen habe ich meinen Wunsch immerhin umgesetzt bekommen.  8)
In der (über Google zu findenden) Doku wird vom Gebrauch von our eher abgeraten; mMn. aber aus Perl-Kompatibilitätsgründen...

betateilchen

Warum schreibst Du Deine benötigten Daten nicht einfach in den %data Hash, der in FHEM systemweit zur Verfügung steht und genau für solche Zwecke vorgesehen ist?

$data{ichBinDieVariableUmDieEsGeht} = 'Inhalt';

Dann kannst Du in Deinem gesamten FHEM mit dem "Namen"

$data{ichBinDieVariableUmDieEsGeht}

darauf zugreifen.


--
-----------------------
Formuliere die Aufgabe möglichst einfach und
setze die Lösung richtig um - dann wird es auch funktionieren.
-----------------------
Lesen gefährdet die Unwissenheit!

GaiusMarius

Weil ich das bis eben nicht wusste!  8)
Ich probiere $data() gleich mal aus...

betateilchen

Zitat von: th0masrad am 10 November 2022, 09:48:27
Ich probiere $data() gleich mal aus...

Das wird nicht funktionieren, du musst schon die Klammern verwenden, die ich in meinem Beispiel verwendet habe.

-----------------------
Formuliere die Aufgabe möglichst einfach und
setze die Lösung richtig um - dann wird es auch funktionieren.
-----------------------
Lesen gefährdet die Unwissenheit!

GaiusMarius

Sorry, falsch wiederholt; implementiert habe ich {} und alles funktioniert tadellos.