Frage : Export von Variablen vom Modul auf Fenstern

Der Code, den ich bekannt gegeben habe, arbeitet an Linux.  Aber, wenn ich versuche, ihn auf Windows laufen zu lassen, erhalte ich die folgende Störung:

Global Symbol „%hash“ erfordert ausdrücklichen Paketnamen an der H:\test.pl-Linie 6.
Execution von H:\test.pl abgebrochenem wegen der Kompilation errors.

I haben erklärt %hash in test.pm mit „unserem“.  Ich habe %hash in der @EXPORT Reihe.  Warum würde ich diese Störung erhalten, wenn das genaue der gleiche Code an Linux arbeitet?

1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
18:
19:
20:
21:
22:
23:
24:
25:
26:
# MODUL
Pakettest

strenges verwenden;
vars qw (@ISA @EXPORT @EXPORT_OK %EXPORT_TAGS $VERSION) benutzen;

Exporteur benutzen;
$VERSION = 1.00;
@ISA = qw (Exporteur);

@EXPORT = qw (%hash);  # Symbole zum autoexport
@EXPORT_OK = qw (); # durch Antrag zu exportieren Symbole,
%EXPORT_TAGS = (); # Namen für Sätze Symbole definieren

unser %hash;
$hash {Umbau} = Wert;

1; # wird dieses angefordert.  Diese Linie nicht löschen!

# INDEX
#! Perl

strenges verwenden;
Test benutzen;

„$_ \ n“ für Schlüssel %hash drucken;

Antwort : Export von Variablen vom Modul auf Fenstern

Ich gefunden, dass das Problem… nahm mich eine Weile…
Es geschah gerade, dass es bereits ein Modul gibt, das test.pm unter C genannt: /Perl/lib/test.pm und dieses Modul hat Vorrang vor Ihrem Modul.
Sind hier die Wahlen:
   * „Gebrauchbibliothek“ verwenden, damit Kraft Perl Ihr test.pm verwendet (Gebrauchbibliothek qw (/your/dir);)
   * oder einen anderen Namen für Modul, wie MyTest.pm (Beispiel unten) verbessern, verwenden

BTW, sollten Sie nur exportieren, wenn es benötigt.
Andernfalls using etwas %MyTest mögen:: Durcheinander ist vermutlich eine bessere (ausdrücklichere) Weise zu gehen.

Viel Glueck!
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
18:
19:
20:
21:
22:
23:
24:
25:
26:
27:
28:
29:
C:\home\jerome >type ee1.pl
#! Perl

strenges verwenden;
MyTest verwenden;

„$_ \ n“ für Schlüssel %hash drucken;





C:\home\jerome >type MyTest.pm
Paket MyTest;

strenges verwenden;
niedriges qw (Exporteur) benutzen;

unser @EXPORT = qw (%hash);

unser %hash = (Umbau => „Wert“);

1; # angefordert dieses t.  Diese Linie nicht löschen!




C:\home\jerome >perl ee1.pl
Umbau
Weitere Lösungen  
 
programming4us programming4us