Vous devriez lire Coping with Scoping par MJD.
perldoc perlmod serait également une lecture utile.
Le code est d'une laideur incroyable. Il piétine toutes sortes d'espaces de noms sans se soucier de rien juste parce que l'auteur semble penser que $author::email est cool.
Une meilleure façon aurait été d'utiliser une hash :
my %author = (
email => 'auteur@example.com',
...
);
Piétiner toute la table des symboles n'est pas nécessaire.
J'ai quelques exemples de Win32::OLE
: http://www.unur.com/comp/ qui ne sont pas des chefs-d'œuvre mais je crois qu'ils améliorent ce style. Voir aussi Pourquoi le nombre de pages dans un document Word diffère-t-il en Perl et en Word VBA ?
Je vais me plaindre un peu :
@pgm::runtime_args = @ARGV ;
Ainsi, nous abandonnons le tableau standard @ARGV
pour piétiner sur l'espace de noms pgm
. De plus, tout programmeur Perl sait ce qu'est @ARGV
. En tout cas, @pgm::runtime_args
n'est plus utilisé dans le script.
$pgm::maxargs = $#pgm::runtime_args + 1 ;
Bien sûr, @pgm::runtime_args
en contexte scalaire nous donnait le nombre d'éléments dans ce tableau. Je ne sais pas pourquoi $pgm::maxargs
pourrait être nécessaire, mais si c'était le cas, alors cette ligne aurait dû être :
$pgm::maxargs = @pgm::runtime_args;
Je ne vais pas citer plus de cette chose. Je suppose que c'est ce qui se passe lorsque les programmeurs Cobol essaient d'écrire en Perl.
$program::copyright = "Copyright (c) 02002 - Kenneth Tomiak : Tous droits réservés.";
Je suis content qu'il ait alloué cinq chiffres pour l'année. On ne sait jamais !
PS : Je crois que mes extraits constituent une utilisation équitable.