Étant donné un fichier CPAN dist (par exemple, comme Acme-Chef-1.01.tar.gz
), quel est l'algorithme permettant de déterminer quelles versions de modules sont "définies" (ou présentes) dans le fichier dist ?
Par exemple, dans le 02packages.details.txt
il y a quatre lignes qui correspondent à ce fichier dist :
Acme::Chef 1.01 S/SM/SMUELLER/Acme-Chef-1.01.tar.gz
Acme::Chef::Container 1.00 S/SM/SMUELLER/Acme-Chef-1.01.tar.gz
Acme::Chef::Ingredient 1.00 S/SM/SMUELLER/Acme-Chef-1.01.tar.gz
Acme::Chef::Recipe 1.00 S/SM/SMUELLER/Acme-Chef-1.01.tar.gz
Je veux essentiellement savoir comment ces lignes sont générées.
Est-ce que la procédure est quelque chose comme :
- trouver tous les
.pm
dans le fichier dist - charger chacun des
.pm
et imprimer les fichiers${ "${pkg}::VERSION"}
donde$pkg
est le nom du paquet correspondant au.pm
nom du fichier (c'est-à-dire que si le.pm
le nom du fichier estFoo/Bar.pm
puis$pkg
esFoo::Bar
.)
Existe-t-il un code qui effectue cette procédure d'indexation ?
Faut-il vraiment charger le module pour déterminer sa version ?