Je crée plusieurs modules Perl qui utiliseront les utilitaires communs pour ouvrir et fermer des fichiers.Où dois-je mettre du code commun à deux modules Perl?
Par exemple,
mod1.pm
my $in, $out;
sub openf {
my $fname = shift;
open $in, "<", $fname or die $!;
}
sub one {
openf($path);
...
}
mod2.pm
my $in, $out;
sub openf {
my $fname = shift;
open $in, "<", $fname or die $!;
}
sub two {
openf($path);
...
}
Maintenant, où Shoul d Je mets openf
pour que le code ne soit pas dupliqué?
Honnêtement, c'est un morceau de code frustrant à regarder: 'open' est une belle fonction , utilise le. Cependant, si vous voulez écrire quelque chose comme ceci, nommez au moins 'open_for_reading' et incluez le nom du fichier dans le message d'erreur. Deuxièmement, pourquoi avez-vous des variables à utiliser comme des handles de fichier dans la portée du paquet. Cela va conduire à tout un tas de contorsions de votre part pour garder les choses droites. Pensez plus à votre conception pendant que vous avez encore le temps. –
à propos de premier) Vous devez réaliser que les codes que je poste ici sont juste des exemples de codes. Évidemment 'openf' fait beaucoup plus de choses dans le code actuel. Ici, je suis en train d'extraire le code qui est nécessaire pour la question plutôt que d'afficher les 100 lignes entières pour un doute sur une seule ligne. à propos de la seconde) les variables sont utilisées comme descripteurs de fichiers dans la portée du paquet parce qu'elles sont utilisées par certains sous-programmes dans le module perl pour ouvrir/fermer des fichiers, par exemple. – Lazer