¿Cuál es la diferencia entre los archivos de la biblioteca y los módulos?

¿Cuál es la diferencia entre los archivos de biblioteca y los módulos en Perl?

Todo es código Perl para perl . Todas las distinciones son puramente idiomáticas.

Código Perl destinado a inclusión que usa una directiva de package :

  • Llamado “módulo”.
  • Por lo general, tienen la extensión .pm . Debe tener esta extensión para use para encontrarlos.
  • Siempre se debe cargar con require , posiblemente mediante el use .
  • Más modular, mejor soportado por CPAN.

Código Perl destinado a inclusión que no usa una directiva de package :

  • Llamado “biblioteca”.
  • Por lo general, tienen la extensión .pl .
  • Siempre debe estar cargado con do .
  • Contamina el espacio de nombre de la persona que llama.
  • Por lo general, es indicativo de un diseño deficiente. Evita estos!

Código de Perl para ejecución directa por intérprete:

  • Llamado “script”.
  • Por lo general, tienen la extensión .pl , o ninguno en absoluto.
  • Probablemente comenzará con una línea shebang ( #! ) Para que puedan comenzar sin especificar perl .

Los archivos de la biblioteca (supongo que quiere decir que se require 'foo.pl' cosas require 'foo.pl' aquí) son una forma obsoleta (anterior a Perl 5) de un módulo externo. En su mayor parte, no debería tener que preocuparse más, aunque todavía hay algunas instalaciones de Perl 4 y, por lo tanto, todavía hay algún código Perl que sigue siendo compatible con ellas (y hay algún código que simplemente nunca se ha actualizado y todavía se carga getcwd.pl etc.).

Nada. Ambos son archivos que contienen el código Perl. Aquí están algunas de las posibles diferencias circunstanciales, sin embargo.

  1. Un ejecutable perl es más probable que tenga un #!/bin/perl shbang.
  2. Las bibliotecas Old .pl Perl (de ahí la ‘p’ + ‘l’) tienen más probabilidades de ser necesarias que los módulos .pm .
  3. Los módulos Perl 5 style ( .pm ) son más propensos a usar Exporter , aunque un módulo aún más nuevo evita exportar cualquier cosa.