J'essaie de mettre en place un grand projet ISH, écrit à Perl. Le Tutoriel IBM Makemaker a été très utile jusqu'à présent, mais je Ne comprenez pas comment relier tous les modules dans le programme principal. Dans ma racine de projet, j'ai My après que je faisais et exécuté, le programme se bloque, se plaignant de ne pas trouver manifeste code>,
makefile.pl code>,
lisezme code>, un répertoire
bin code> et a < code> lib code> répertoire. Dans mon répertoire
bin code>, j'ai mon script principal (
main.pl code>). Dans le répertoire
lib code>, j'ai chacun de mes modules, divisés dans leurs propres répertoires respectifs (c'est-à-dire
utils :: util1 code> et
utils :: utils2 code > Dans le répertoire
utils code>, etc.). Dans chaque répertoire de module, il existe également un répertoire
t code>, contenant des tests
MANIFEST code> Le fichier suivant: p>
makfile.pl code> est le suivant: p>
Utils :: util1 code>, et quand j'exécute '
faire tester code>, il est indiqué
Aucun test défini code>. Quelqu'un peut-il faire des suggestions? Je n'ai jamais fait de projet à grande échelle comme celui-ci à Perl, et je devrai ajouter de nombreux autres modules p> p>
4 Réponses :
Par défaut, les tests sont recherchés dans un répertoire T de niveau supérieur (ou un fichier test.pl, mais qui a des limitations, de sorte que cela devrait être évité). P>
Vous dites "après que je faisais et courir" ... Mettez des choses dans une structure de répertoire Blib prêt à être installée, mais ne fais rien de spécial pour faire exécuter un script d'accéder. (Effectuez le test est spécial; il a ajouté des chemins appropriés de Blib to perl @inc pour pouvoir exécuter les tests.) Vous devrez faire une «installation» pour installer les modules où votre script les trouvera (ou utiliser un Outil comme par pour les emballer avec votre script). P>
Essayez cette structure:
perl -Mblib bin/Main.pl
Pourrais-je aussi suggérer Module-Starter code>
? Cela créera automatiquement un projet de squelette qui "fonctionne simplement". J'ai appris ce que je connais peu sur l'organisation de modules Perl en lisant les fichiers de squelette générés. Tout est bien documenté et assez facile à utiliser comme base pour la croissance d'un projet plus important. Vous pouvez consulter Les DOCS de démarrage pour voir ce qu'il vous donne.
exécuté pour créer plusieurs modules dans une seule distribution). Il vous appartient alors si vous préférez organiser votre projet comme une seule distribution composée d'un certain nombre de modules fonctionnant ensemble, ou en tant que nombre de distributions pouvant être libérées séparément, mais qui dépendent de l'autre (comme configuré dans votre < Code> Build CODE> ou Module-Starter code> vous donnera une distribution Perl, consistant d'un certain nombre de modules (utilisez l'option de ligne de commande
- Module code>, tel que: p>
MAKEFILE.PL CODE> Fichier) Pour fournir un système complet. p> p>
Merci. J'ai lu cela et je n'ai rien trouvé sur faire des projets, seulement sur la fabrication de modules
TIM: J'ai modifié ma réponse pour clarifier la manière dont les distributions et les modules peuvent travailler ensemble à Perl. J'espère que ça aide? Veuillez modifier votre question ou répondre à nouveau si l'un de nous est toujours confondu :).
Cela semble être une très bonne idée et je devrai l'utiliser pour mon prochain projet. J'ai déjà mis en place un projet Makemaker, mais cela répond à ma question beaucoup mieux que votre poste initial
Si vous commencez tout juste à créer des modules PERL (qui est également l'équivalent de Perl d'un projet), n'utilisez pas Makemaker. Module :: Build est la voie à suivre et fait maintenant partie de la bibliothèque standard. Makemaker est pour nous de vieux sels qui n'ont pas été convertis en module :: Construire encore. :) s> Je vais frapper que maintenant que Module :: Build est hométacé et hors de faveur; J'utilise toujours Makemaker.
Vous ne devez jamais commencer un projet Perl en essayant de créer vous-même la structure vous-même. C'est trop de travail et vous oublierez toujours quelque chose. p>
Il y a quelque chose comme Si vous le faites pour le faire un peu, vous pourriez ensuite convertir en Si vous êtes vraiment dur, vous voudrez peut-être h2xs code>, un programme fourni avec
perl code> et était censé être un outil pour convertir les fichiers .h em> Langue de colle de Perl XS. Cela fonctionne bien, mais son avantage est qu'il est livré avec
perl code>: p>
J'espère que tu es "utils: util1" et "utils :: util2" ne sont que des exemples de noms.
Ce ne sont que des exemples de noms. Je n'ai pas encore écrit tous les modules que je vais avoir besoin, mais je voulais pouvoir construire quelque chose.