Thread Exporter und %EXPORT_TAGS: Probem unter Linux (1 answers)
Opened by Crian at 2005-04-08 18:33

Crian
 2005-04-08 18:33
#53618 #53618
User since
2003-08-04
5871 Artikel
ModeratorIn
[Homepage]
user image
Zitat aus perldoc Exporter:

Code: (dl )
1
2
3
        @EXPORT      = qw(A1 A2 A3 A4 A5);
@EXPORT_OK = qw(B1 B2 B3 B4 B5);
%EXPORT_TAGS = (T1 => [qw(A1 A2 B1 B2)], T2 => [qw(A1 A2 B3 B4)]);


So weit so gut. Ich habe ein Problem mit drei Modulen, die sich mehr oder weniger gegenseitig verwenden. Unter Windows mit Active Perl (Perl 5.8.6) läuft es problemlos, unter Linux (Perl 5.8.1) bekomme ich folgende Meldung:

Code: (dl )
"ALL" is not defined in %FeFile::EXPORT_TAGS at /home/usr207/daten/perl/forumeditor/FeGui.pm line 19



Die drei Module werden von fe.pl aus eingebunden mit:

Code: (dl )
1
2
3
4
5
6
use FindBin;
use lib $FindBin::Bin;

use FeCore qw/:ALL/;
use FeFile qw/:ALL/;
use FeGui qw/:ALL/;


in FeCore.pm steht

Code: (dl )
1
2
3
4
use base qw/Exporter/;
our @EXPORT = qw//;
our @EXPORT_OK = qw/%Config @Icon/;
our %EXPORT_TAGS = (ALL => [qw/%Config @Icon/]);


(Und kein anderes Modul wird hier verwendet.)

In FeFile.pm steht:

Code: (dl )
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
use FeCore qw/:ALL/;
use FeGui qw/:ALL/; ### ZEILE 19 ###

use base qw/Exporter/;
our @EXPORT = qw//;
our @EXPORT_OK = qw/load
create
save
datei_neu
datei_oeffnen
datei_speichern
datei_speichern_unter
bearbeiten
init/;
our %EXPORT_TAGS = (ALL => [qw/load
create
save
datei_neu
datei_oeffnen
datei_speichern
datei_speichern_unter
bearbeiten
init/]);


und in FeGui.pm steht schließlich

Code: (dl )
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
use FeCore qw/:ALL/;
use FeFile qw/:ALL/;

...

use base qw/Exporter/;
our @EXPORT = qw//;
our @EXPORT_OK = qw/tk_main
anzeige_fenster
hilfe
historie
ueber
open_or_new
tk_ende/;
our %EXPORT_TAGS = (ALL => [qw/tk_main
anzeige_fenster
hilfe
historie
ueber
open_or_new
tk_ende/]);


Was mache ich falsch und warum funktioniert es unter Windows? Kann es an den unterschiedlichen Perl-Versionen (5.8.6/5.8.1) liegen? Ich habe mal testweise das use FeFile qw/ALL/; in FeGui.pm unter die Exporter-Zeilen verschoben, aber das hat keine Änderung verursacht.
s--Pevna-;s.([a-z]).chr((ord($1)-84)%26+97).gee; s^([A-Z])^chr((ord($1)-52)%26+65)^gee;print;

use strict; use warnings; Link zu meiner Perlseite

View full thread Exporter und %EXPORT_TAGS: Probem unter Linux