En Perl, il est préférable d'utiliser un module que de besoin d'un fichier?

Une autre question m'a fait réfléchir sur les différentes méthodes de réutilisation de code: use vs require vs do

Je vois beaucoup de posts ici, où la question tourne autour de l'utilisation de require de charger et d'exécuter du code. Cela me semble être une évidente mauvaise pratique, mais je n'ai pas trouvé de bonnes ressources sur, la question que je peut pour.

perlfaq8 couvre la différence entre use et require, mais il n'offre pas de conseils à l'égard de préférence, comme de 5.10-dans 5.8.8 il est un peu rapide de conseils en faveur de l'utilisation).

Ce sujet semble souffrir d'un manque de discussion. J'ai quelques questions que j'aimerais voir abordés:

  1. Quelle est la méthode préférée de la réutilisation de code en Perl?
    • use ModuleName;
    • require ModuleName;
    • require 'file.pl';
    • do 'file.pl';
  2. Quelle est la différence entre require ModuleName et require "file.pl"?
  3. Est jamais une bonne idée d'utiliser require "file.pl"? Pourquoi ou pourquoi pas?
  • Vouliez-vous dire require Module ou peut-être do "file" au lieu de require "file"?
  • require "file" utilise do "file" pour traiter ses arugment, mais il ne fonctionne que sur un fichier en même temps.
  • Ce n'est pas ce que j'étais en demandant au sujet. Généralement do est utilisé pour *.pl des fichiers tout en require est utilisé pour *.pm fichiers. L'extension du fichier n'a pas d'importance, bien sûr, mais par convention *.pl n'a pas signifié "bibliothèque perl" pour un long moment. J'ai essayé de préciser si vous faisiez référence à l'ancien usage, ou si la question devrait être modifié pour refléter les trois façons de chargement de code externe (use, require, et do). Il serait plus logique (pour moi) pour inclure tous les trois formes dans la discussion.
  • oui, je veux dire l'ancien style d'utilisation. Pour quelque raison que ce soit, je vois plus de gens à l'aide de require sur que je vois à l'aide de do. Il est logique d'inclure l'utilisation de do dans la question. Si vous avez une bonne idée sur la formulation, veuillez modifier la question. Le but est d'obtenir une bonne ressource pour les gens au, au lieu de réécrire la même réponse ("utilisation des modules à la place") et plus.