Calocybe: Variablen in externer Datei

Beitrag lesen

Hi!

Habich schon probiert, aber leider kommt dann immer folgende Meldung:

Global symbol "mbs_expose_elements" requires explicit package name at insert.pl line 87.<

Klar, Du verwendest ja "use strict", und hast die Variablen nicht mit "my" oder "use vars" deklariert ("local" faellt aus weil is nich weil das fuer andere Dinge da ist).

Wenn ich kein Package einrichte ist es doch MAIN oder und so müßten eigentlich die Variablen exportiert werden.

Nicht MAIN, sondern main. Und deswegen wird da auch gar nichts irgendwo hin exportiert, sondern die eingebundene Datei wird fast so behandelt, als wenn der darin enthaltene Code anstelle des requires stehen wuerde. Und deshalb musst Du mit den Variablen eben auch genau so verfahren, wie wenn Du sie gleich in die Hauptdatei schreiben wuerdest, also entweder
    my @mbs_expose_elements = ( .... );
oder
    use vars qw(@mbs_expose_elements);
    @mbs_expose_elements = ( .... );
je nachdem, wie Du die Variablen verwendest (mit my sind sie nur im main-Package sichtbar, mit use vars kannst Du auch aus allen anderen Packages ueber @::mbs_expose_elements oder @main::mbs_expose_elements darauf zugreifen, weil es dann eben globale Variablen sind; aber mit Packages scheinst Du ja nicht zu arbeiten).

So long