Me gustaría obtener dinámicamente una lista de nombres de funciones (como cadenas) o referencias de funciones de cualquier módulo Perl arbitrario disponible en mi sistema. Esto incluiría módulos que pueden tener o no tener, por ejemplo, una matriz global @EXPORT_OK
en su espacio de nombres. ¿Es posible tal hazaña? ¿Cómo puede uno sacarlo si es así?¿Puedo obtener dinámicamente una lista de funciones o nombres de funciones de cualquier módulo Perl?
Editar: De la lectura de perlmod, veo que %Some::Module::
sirve como una tabla de símbolos para Some::Module
. ¿Es este el lugar correcto para mirar? Si es así, ¿cómo puedo reducir la tabla a solo los nombres de las funciones en Some::Module
?
aseado. Creo que me estaba acercando a esto al estudiar la presentación de CPAN, 'Symbol :: Table', pero sus formas están un poco avanzadas para mí. –
Esto fallará si se pega en un archivo con 'use strict' en la parte superior. Para evitar sorpresas, y para dejar en claro que esta es una técnica avanzada, agregue 'no strict 'refs'' before' if (defined & {"X :: $ entry"}) {' – Narveson
@Narveson, eso no trabajo, y tampoco es tan grave. Los escalares X-package solo necesitan tener 'nuestro' lanzado delante de ellos. –