POD es un formato de documentación integrado en Perl, que históricamente apareció junto con la extensión del lenguaje para soportar grandes proyectos. Su diferencia fundamental: la documentación siempre se almacena directamente en el código fuente, lo que ayuda a no perder la conexión entre la implementación y la descripción (en este momento, es en principio inseparable del desarrollo de módulos complejos en Perl).
Problema: a menudo, los programadores o no conocen o ignoran los sistemas de generación automática de documentación, a pesar de que el ecosistema Perl (CPAN) lo exige claramente para todos los módulos.
Solución: utilizar POD para cada archivo, clase y función. Para la automatización existen herramientas como perldoc, pod2man, Pod::Coverage. Regla clara: si tu módulo no tiene POD, no será aceptado en el entorno corporativo o no se incluirá en CPAN.
Ejemplo de código:
=head1 NAME My::Module - ejemplo de uso de POD =head1 SYNOPSIS use My::Module; ... =head1 DESCRIPTION Esta función hace... =cut
Características clave:
¿Puede POD estar dentro de una subprograma, y no solo al inicio del archivo?
Respuesta: Sí, la especificación de POD permite inserciones después de cualquier construcción clave: después de la declaración de funciones, métodos, incluso dentro de bloques.
¿Qué sucederá si se escribe código dentro de un bloque POD?
Respuesta: Todo entre =pod (o cualquier otro encabezado) y =cut es ignorado por el intérprete. ¡El código no se ejecutará! Este es un error común.
¿Cómo documentar funciones privadas en POD?
Respuesta: Se acostumbra agregar una sección INTERNO o FUNCIONES PRIVADAS, o no incluir dicha documentación en SYNOPSIS. No se recomienda ocultar completamente la documentación, especialmente si la librería es pública.
El módulo se entrega sin documentación. Los nuevos desarrolladores tienen que leer el código fuente y desentrañar los parámetros mágicos de las funciones.
Pros:
Contras:
Todo el código está dotado de POD, el ejemplo de uso se muestra en la sección SYNOPSIS, cada función está descrita y hay indicaciones de limitaciones.
Pros:
Contras: