2012-04-16 6 views
6

Estaba comparando los números si es diferente "Archivo de Redes", como CPAN, CTAN, etc. rubygems.org CPAN muestra dos números muy diferentes:¿Cuál es la diferencia entre módulo y distribución en CPAN?

  • 105,774 módulos
  • 24.657 distribuciones

Como no soy programador de Perl (estoy preparando una charla para la universidad), no estoy familiarizado con la redacción de Perl. Intenté buscarlos y solo encontré el "módulo" que definiría Perl. Por lo que yo entendí, un módulo es cualquier archivo con un espacio de nombres.

Sin embargo, no puedo encontrar ninguna declaración de lo que es una distribución. Incluso CPAN solo muestra una lista de módulos o usan ambas palabras juntas (como "distribución de módulos"). ¿Alguien puede aclarar mi mente?

Respuesta

15

Una distribución contendrá uno o más módulos, documentación, un script de compilación y también típicamente un conjunto de pruebas, un archivo manifiesto, un archivo Léame, un registro de cambios e información de licencia. Los módulos agrupados en una distribución a menudo forman parte de la biblioteca de clases completa, o al menos de todas las herramientas relacionadas divididas en paquetes de nombre intuitivo.

Tomando, por ejemplo, la distribución núcleo IO, se puede ver que contiene los siguientes módulos:

  • IO - cargar varios módulos IO
  • IO :: Dir - métodos de objeto de suministro para directorio manijas
  • IO :: File - métodos de objeto de suministro para filehandles
  • IO :: Handle - métodos de objeto de suministro para I/O maneja
  • IO :: Pipe - métodos de objeto de suministro para tuberías
  • IO :: encuesta - la interfaz del objeto al llamado sistema de sondeo
  • IO :: Seekable - métodos de alimentación seek basa para I/O objetos
  • IO :: Selecciona - interfaz OO a la llamada al sistema select
  • IO :: Socket - interfaz de objetos para Socket Communications
  • IO :: Socket :: INET - interfaz de objetos para sockets de dominio AF_INET
  • IO :: Socket :: UNIX - interfaz de objetos para sockets de dominio AF_UNIX
+2

Usted descarga y bui ld una distribución de CPAN, que instalará uno o más módulos. – mob

+0

Gracias Richard. Entonces, para comparar las redes de archivos debería usar el número de distribuciones, ya que se acercan al significado de gemas (Ruby) o paquetes (Python, Haskell, ...) - ¿no? Y solo para confirmar este hecho: ¿recibí la noción de un módulo correcto (un archivo con un espacio de nombres, por ejemplo, el archivo detrás de IO :: Dir)? –

+0

No veo cómo se puede comparar y obtener ningún tipo de número significativo. No puede contar las distribuciones (por ejemplo, todos los módulos en IO podrían tener su propia distribución) y no puede contar los módulos (por ejemplo, una biblioteca de fecha y hora podría almacenar toda la información de zona horaria en un módulo o podría almacenar cada vez zona en un módulo diferente). Y luego está la cuestión de cuántos módulos se usan, utilizables, redundantes, etc. – ikegami

Cuestiones relacionadas