les solutions restent :
- une table de hachage qui contient en clé le nom de la sub et en valeur une reference sur une sub anonyme
- l'import directement dans l'espace de perl de la dite sub
pour ces deux cas, tu peux faire un truc avec 1 seul eval à l'importation, pleins de eval a chaque appel.
le principe du 1 seul eval à l'import peut se resoudre encore une fois de plein de maniere differente ... la plus évidente et sans finesse perl ( peu performante mais qui a le merite d'etre clair ) :
- tu lis le fichier contenant ton source perl
- tu en fais un eval
si par hasard, tu lis la doc perl, tu verras qu'il a deux fonctions largement optimisé qui fait cela à l'execution do et require .
maintenant, n'oublie pas que toute sub que tu as deja importé par require / do / use est directement appelable par appel indirect de fonction grace à &{$nom_de_la_sub} ou $nom_de_la_sub() .
si tu veux controler un minimum, tu fais l'appel en passant par un code de verification de la chaine contenant le nom de la sub a éxecuter.
# TIMTOWTDI
Posté par Mouns . En réponse au message Appel de fonction dynamique sans eval?. Évalué à 3.
- une table de hachage qui contient en clé le nom de la sub et en valeur une reference sur une sub anonyme
- l'import directement dans l'espace de perl de la dite sub
pour ces deux cas, tu peux faire un truc avec 1 seul eval à l'importation, pleins de eval a chaque appel.
le principe du 1 seul eval à l'import peut se resoudre encore une fois de plein de maniere differente ... la plus évidente et sans finesse perl ( peu performante mais qui a le merite d'etre clair ) :
- tu lis le fichier contenant ton source perl
- tu en fais un eval
si par hasard, tu lis la doc perl, tu verras qu'il a deux fonctions largement optimisé qui fait cela à l'execution do et require .
maintenant, n'oublie pas que toute sub que tu as deja importé par require / do / use est directement appelable par appel indirect de fonction grace à &{$nom_de_la_sub} ou $nom_de_la_sub() .
si tu veux controler un minimum, tu fais l'appel en passant par un code de verification de la chaine contenant le nom de la sub a éxecuter.