J'utilise Module :: Build pour effectuer des actions de build, test, testpod, html, & sur mon module Perl que je suis en train de développer. Les fichiers HTML générés sont corrects, mais je serais beaucoup plus heureux si je pouvais configurer Module :: Build pour utiliser l'utilitaire de formatage perltidy -html au lieu de son propre formateur HTML. Quelqu'un sait-il comment je peux remplacer le formateur HTML fourni avec Module :: Build avec le formateur HTML plus élégant?Puis-je utiliser le formateur HTML de perltidy dans ma compilation Perl automatisée?
Addendum: Quand je dis "Replace" ci-dessus, qui était probablement induire en erreur. Je ne veux pas vraiment écrire du code pour remplacer le formateur html fourni avec Module :: Build. Je veux vraiment savoir si Module :: Build a autres options de formatage HTML. Le HTML qu'il génère est tellement simple et générique. C'est tellement ennuyant. J'aime beaucoup la sortie de perltidy.
Voici comment je l'ai eu à travailler en ce moment dans un script de compilation que je l'ai écrit, mais il est tout à fait un hack ... tomber à la ligne de commande de script perltidy:
use strict;
use warnings;
# get list of files in directory
my $libLocation = "lib/EDF";
opendir(DIR, $libLocation);
my @filenameArray = readdir(DIR);
# iterate over all files to find *.pm set
for my $file (@filenameArray) {
if ($file =~ m/ # matching regex
\. # literal period character
pm # the pm file extenstion
/x # end of regex
)
{
my $return = `perl D:/Perl/site/bin/perltidy -q --indent-columns=4 --maximum-line-length=80 -html -opath blib/libhtml2 -toc $libLocation/$file`;
if ($return eq "") {
print "HTMLized " . $file . "\n";
}
else {
print "Error: " . $return . "\n";
}
}
}
Mais j'espérais vraiment il y avait un moyen d'utiliser Module :: Build et juste le dire avec un drapeau ou un argument ou quoi que ce soit pour lui dire d'utiliser un formateur HTML différent. Je suppose que c'est un rêve de pipe, cependant:
use strict;
use warnings;
use Module::Build;
my $build = Module::Build->resume (
properties => {
config_dir => '_build',
},
);
$build->dispatch('build');
$build->dispatch('html', engine => 'perltidy');
ou peut-être:
$build->dispatch('htmltidy');
Cela ressemble travail que je ne suis pas confortable à prendre. J'espérais qu'il y avait juste un drapeau que je pourrais mettre ou quelque chose. :-) –
Ce n'est probablement pas si difficile. Je vais jeter un coup d'oeil plus tard. –
Ceci est intéressant. Je suppose que vous venez de changer la dernière ligne de ce qu'elle était avant cet appel perltidy.Mon souci ici est que ceci est pour un projet de travail, et que je copierais un sous-programme CPAN existant et que je le gèlerais pour toujours et que je n'obtiendrais jamais les futures améliorations de Module :: Build pour cette routine particulière. Pas vraiment une bonne proactice de génie logiciel. Peut-être pas un gros problème pour ce petit cas, cependant. Je vais le considérer. Merci de me montrer comment le faire. –