Philipp Hasenfratz: "Module und Datenexport" oder muss ich `in Ruhestand?

Beitrag lesen

Halihallo

Also doch nicht Ruhestand, danke für die Hilfe ;-)

Bin irgendwie blablabla, da programmiert man irgendwas grosses
und weiss nicht einmal mehr, wie man Variablen exportiert ;-(

Am besten gar nicht!

Ja, ich gebe dir recht, das man das nicht tun sollte, aber in meinem Fall macht es eben Sinn. Das Modul wird nur für ein Projekt gebraucht und dieser Hash muss eben jedem Programm zugänglich gemacht werden. Da ist es schon schön, wenn der Hash gleich exportiert wird, statt ihn durch einen Funktionsaufruf einzulesen.

Ich hab'n Modul, das die einen bestimmten Hash iniziiert, der
anschliessend (mit Inhalt!) im Hauptprogramm zu gebrauchen sein
soll.

Tu das nicht, bitte.

;-)
keine Angst, ich werd's nur dieses Mal tun ;-)

Nun gut, der Code waere so z. B. richtig:

use strict;
use vars qw(@ISA @EXPORT $VERSION %HASH);

Aha! - einfach den %HASH mit use vars exportieren und nicht mit my deklarieren? - Sehr gut und einfach. Danke

@EXPORT = qw(%HASH);   # IMHO schoener als ('%HASH')

Ja, ich wollte nur sicher gehen, dass es nicht am " liegt. qw ist ja nix anderes als "[...]", wollt's mal mit single-quotes versuchen. Könnte ja sein, dass er versucht %HASH zu interpretieren, o. ä.

Der Fehler liegt im 'my %HASH'. Eine mit 'my' angelegte Variable
*kann* nicht exportiert werden, sie erhaelt gar keinen Eintrag in
der Symbol-Tabelle des Moduls.

Oha. Vielen Dank für deine Hilfe, hat funktioniert.

Philipp