Thread Tutorial für Module
(11 answers)
Opened by bianca at 2012-12-20 12:51 2012-12-20T11:51:14 bianca Ich versuche mal -- bin keine gute Lehrerin ;) -- das zu erklären. 1. Das Modul Exporter stell diverse Funktionen zu Verfügung, mit denen das Modul exportfähiges bekannt macht. Code (perl): (dl
)
1 2 3 4 5 6 7 our ( $VERSION, @ISA, @EXPORT, @EXPORT_OK, %EXPORT_TAGS ); use Exporter (); @ISA = qw(Exporter); @EXPORT = qw(); %EXPORT_TAGS = qw(); # eg: TAG => [ qw!name1 name2! ], # optionally exported functions @EXPORT_OK = qw(); Funktionsnamen und andere Variablen werden als exportierfähig bekannt gemacht, in dem diese Namen in die *EXPORT... Variablen geschrieben werden. In @EXPORT stehen die Funktionen, Variablen etc. die automatisch in andere Programme importiert werden. Code (perl): (dl
)
@EXPORT = qw($blubb &blah %boing); Das bedeutet, dass bei Code (perl): (dl
)
use My::Module; In @EXPORT_OK stehen die Methoden/Funktionen, die durch den Aufruf Code (perl): (dl
)
use My::Module qw(&func1 &func2 %hasch @arry); In %EXPORT_TAGS kannst du quasi Gruppen definieren, die dann in andere Programme importiert werden. Dann kannst du nämlich mit Code (perl): (dl
)
use My::Module qw(-alles); Code (perl): (dl
)
1 2 3 4 5 %EXPORT_TAGS = ( -alles => [ qw(&dieses $jenes %dies @das %foo $bar &baz &boo) ], -min => [ qw(&minimalfunc $min) ], BOOH => [ qw(&boo &die $errornum @errors ] ); In Siehe http://perldoc.perl.org/Exporter.html#Good-Practic... kannst du nachlesen wie sinnvoll vorgegangen wird beim befüllen der *EXPORT... Variablen in Modulen. 2. Definition von Prerequieries Wie du die im Modul definierst? Mit use. Oder was meist du? 3. Generelle Syntax und Aufbau des Codes Tja, das machen Leute verschieden. Die Funktion zur Erzeugung eines Objects sollte immer new heißen. Die variable, die das Objekt beinhaltet wird oft $self genannt. Um möglicherweise selbst im Modul aufzuräumen, sollte eine Methode DESTROY existieren. Jede Methode/Funktion sollte vorangestellt einen POD-Abschnitt als Dokumentation des Aufrufs etc. haben. Siehe auch Perl Best Practices http://alvar.a-blast.org/vortraege/perl-workshop/p... //EDIT: Kleines druchzuprobierendes beispiel findes sich auf https://sites.google.com/site/arjunwebworld/Home/p... Das ist nur wirklich ein grober Ausriss an (ungelenk erklärter) Informationen von mir. Last edited: 2012-12-20 14:34:07 +0100 (CET) |