Patrick Andrieu: Export, Export und nochmals Export

Beitrag lesen

Hallo Renate!

Keine Ahnung, ob Larry Wall, außer Linguistik studiert zu haben, auch noch Ökonomie, insbesondere Export/Import, zu seinen Studienfächern zählte ;)

Aber es steht schon in SELFHTML:

<cite>
   Die Liste @EXPORT kann Namen der Module aufnehmen,
   die in den Namensraum eines einbindenden Scripts
   standardmäßig exportiert werden, wenn bei der
   Einbindung keine spezielle Importliste angegeben ist.
</cite>

Das bedeutet, Du muss bei »use Modul.pm« nicht explizit angeben, welche Variablennamen, Funktionennamen, etc. Du aus dem Modul in Den Namensraum des einbindenden Scripts (main::) importiert werden sollen.

Steht in @EXPORT z.B. $foo, kannst Du im Skript sofort $foo benutzen, z.B.:

print $foo;

<cite>
   Die Liste @EXPORT_OK nimmt dagegen die Namen auf,
   die ein einbindendes Script maximal in den eigenen
   Namensraum übernehmen kann, aber nicht übernehmen muss.
</cite>

Das bedeutet, die Namen in der EXPORT_OK-Liste werden bereitgestellt. Musst Du auf eine Variable daraus zurückgreifen, musst Du sie explizit importieren:

In @EXPORT_OK steht beispielsweise:

@EXPORT_OK = qw($bar $buzz @blubb);

Im Skript schreibst Du, falls Du $bar brauchst:

use Modul qw($bar);

print $bar;

package Modul;
   require Exporter;

our @ISA = ('Exporter');
   our @EXPORT = (Liste_der_Standard_Exporte);
   our @EXPORT_OK = (Liste_der_Exporte_auf_Anfrage);

  
Das ist mir so mit 'our' noch nie begegnet.  
  
  
Viele Grüße aus Frankfurt/Main,  
Patrick

-- 
![](http://www.atomic-eggs.com/fuernA.jpg)  
  
\_ - jenseits vom delirium - \_  
  
[[link:hatehtehpehdoppelpunktslashslashwehwehwehpunktatomicminuseggspunktcomslash](http://www.atomic-eggs.com/)]  
Nichts ist unmöglich? [Doch!](http://www.atomic-eggs.com/cwi/cwi_4.shtml)  
Heute schon ge[gök](http://goek.atomic-eggs.com/goek_goek.html)t?