2 Stimmen

Tipps zur Entwicklung einer Reihe von Perl-Modulen

Ich habe die Anforderung, eine Gruppe von Perl-Modulen für die interne Arbeit zu entwickeln. Ich möchte, dass sie alle in einem einzigen Modul zusammengefasst werden Familie o Reihe von Modulen anstatt getrennt zu sein.

Die Suite könnte zum Beispiel so aussehen:

MySuite::App::Module1
            ::Module2
MySuite::Env
MySuite::Utils::Logger
              ::Util2

Ich habe durch perlmodstyle , perlnewmod usw., aber sie scheinen sich alle auf Tipps für die Entwicklung einzelner Module zu konzentrieren. Welche Tipps/Best-Practices gibt es für die Entwicklung/Verteilung einer solchen Suite? (die einzelnen Module der Suite könnten von verschiedenen Entwicklern geschrieben werden)

2voto

daxim Punkte 38607

Es ist nicht viel anders als bei Einzelmodul-Distributionen. Zwei weitere etablierte Konventionen sind:

  1. Platzieren Sie Module hierarchisch in der lib Verzeichnis.

    MySuite::App::Module1          lib/MySuite/App/Module1.pm
    MySuite::App::Module2          lib/MySuite/App/Module2.pm
    MySuite::Env                   lib/MySuite/Env.pm
    MySuite::Utils::Logger         lib/MySuite/Utils/Logger.pm
    MySuite::Utils::Util2          lib/MySuite/Utils/Utils2.pm
  2. Wählen Sie ein Hauptmodul aus, das der Name der Verteilung wird. Ihr Beispiel sieht aus, als sollte es ein zusätzliches lib/MySuite.pm mit Paketanweisung MySuite und nicht viel Code und eine Einstiegsdokumentation. Weisen Sie dieses Modul als module_name in der Datei Build.PL.


Weitere Informationen über Verpackungen im Allgemeinen finden Sie unter:

Feedback/Kritik zu Ihren Fortschritten erhalten Sie von:

1voto

muenalan Punkte 500

Verwenden Sie das h2xs-Kommandozeilen-Tool, das mit Perl ausgeliefert wird. Es erstellt ein sehr nützliches Perl-Modul-Skelett (das sich besonders für die Verteilung auf CPAN eignet). Geben Sie in Ihrer Shell ein:

$ h2xs -X MySuite

Dadurch wird eine einzelne Distribution mit dem jeweiligen Modulskelett in lib. Studieren Sie es und erstellen Sie die anderen .pm-Dateien, die unterhalb von lib benötigt werden. Studieren Sie die "package"-Zeile im Quelltext und passen Sie den Dateipfad an; Sie sollten die Grundidee verstehen. Zum Beispiel:

  $ cd MySuite
  $ touch -p lib/MySuite/App/Module.pm
  $ touch -p lib/MySuite/Env.pm
  $ ...

wäre der grundlegende Schritt, um weitere Module zu Ihrer Distribution hinzuzufügen. Jedes Mal, wenn Sie eine weitere .pm-Datei hinzufügen oder Dateinamen ändern wollen, geben Sie eine

  $ perl Makefile.PL  (only first time or "Makefile" not present)
  $ make manifest

um Ihre MANIFEST-Datei zu synchronisieren; es werden alle Dateien innerhalb der Modulverteilung hinzugefügt. Dies ermöglicht Ihnen die Verwendung von

  $ make dist

um ein MySuite-0.1.tar.gz-Archiv für Sie zu erstellen. Schließlich können Sie Ihre Suite mit testen:

  $ make test

Zusammengenommen ist h2xs sehr praktisch für Modulautoren und nimmt ihnen die Last der Vorbereitung der grundlegenden Infrastruktur für die Modulverteilung ab. Es erstellt Platzhalter, um spezifische Dokumentationen auszufüllen und erstellt ein Makefile, um Ihre Distribution zu verwalten - wenn sie größer wird, werden Sie das zu schätzen wissen. Schicken Sie Ihr Modul an CPAN, und Sie werden sich freuen, wie gut es indiziert werden wird.

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X