Je voudrais obtenir dynamiquement une liste des noms de fonctions (en tant que chaînes) ou des références de fonctions à partir de n'importe quel module Perl disponible sur mon système. Ceci inclurait des modules qui peuvent ou non avoir, par exemple, un tableau global @EXPORT_OK
dans son espace de noms. Un tel exploit est-il possible? Comment l'arracher si c'est le cas?Puis-je obtenir dynamiquement une liste de fonctions ou de noms de fonctions à partir de n'importe quel module Perl?
Edit: De la lecture perlmod, je vois que %Some::Module::
sert de table de symboles pour Some::Module
. Est-ce le bon endroit pour regarder? Si oui, comment est-ce que je peux réduire la table juste aux noms de fonction dans Some::Module
?
Neat. Je pense que je m'apprêtais à étudier la soumission du CPAN, 'Symbol :: Table', mais ses méthodes sont un peu avancées pour moi. –
Cela échouera si collé dans un fichier avec 'use strict' en haut. Pour éviter les surprises, et pour préciser que c'est une technique avancée, ajoutez 'no strict 'refs'' avant' if (defined & {"X :: $ entry"}) {' – Narveson
@Narveson, cela ne serait pas travailler, et ce n'est pas si terrible. Les scalaires du paquet X ont juste besoin d'avoir 'our' en face d'eux. –