Ich schreibe einen Programmierer-Texteditor (ja, einen anderen) in Perl namens Kephra , der natürlich auch ein CPAN-Modul ist und gebündelt mit Module :: Install . Kürzlich habe ich gesehen, dass Module :: Build in den Kern gegangen ist. Wenn ich also wechsle, könnte ich die Abhängigkeiten reduzieren. Gibt es noch einen anderen Grund zu wechseln?
Das Wiederkäuen wurde schon vorher etwas gekaut in " Welchen Rahmen sollte ich zum Schreiben von Modulen verwenden? "
Nach dem Ausspucken habe ich beschlossen, mit Module :: Build zu gehen, aber es sind eindeutig andere Antworten möglich ! (obwohl ich bis jetzt mit M :: B glücklich war).
Wir verwenden Module :: Build in unserer Gruppe.
Der Hauptgrund ist Einfache Erweiterbarkeit .
Module :: Build ermöglicht es Ihnen, mehr mit Ihrem Build-Prozess in reinem Perl durch Subclassing zu tun. Wenn Sie mehr mit Module :: Install tun möchten, müssen Sie wissen, wie Makefiles funktionieren, AFAIK. Da Sie Perl vermutlich bereits kennen, kann dies von Vorteil sein.
Wie Sie bereits erwähnt haben, entfernt die Verwendung von Module :: Build die Abhängigkeit von einem externen Programm make
, was als eine gute Sache angesehen werden kann.
Aber die wichtigsten Nachteile, die ich mir vorstellen kann, sind:
perl Makemaker.PL; make; make install
gewöhnt und können stattdessen mit Build.PL
weggeworfen werden. Hoffentlich ist das keine große Sache. Alles, was ich gesagt habe, empfehle ich jedoch Modul :: Build einfach für die Erweiterbarkeit. Wenn das für Sie kein Problem ist, sollten Sie besser mit Module :: Install arbeiten.
Nun, Module::Build
ist ein ziemlich gutes Modul, es sollte ein Ersatz für ExtUtils::MakeMaker
sein, das heißt, die Makefile.PL durch eine Build.PL ersetzen, die ein Build anstelle eines Makefiles generiert. Es war auch gemeint als "einfache Dinge sollten einfach bleiben, harte Dinge sollten möglich sein".
Module::Install
verwendet einen anderen Ansatz und generiert ein Makefile.
Vergessen Sie auch nicht, dass nicht jeder die neueste Version von allem ausführt: -)
Ich kann mich an keinen Vergleich dieser Module erinnern, aber ich denke, Sie könnten einige Dinge von Module::Build
Module::Install
zu den entsprechenden Seiten.