Estoy trabajando en un marco de prueba en Perl. Como parte de las pruebas, es posible que necesite agregar verificaciones previas o posteriores a la condición para cualquier prueba dada, pero no necesariamente para todas. Lo que tengo hasta ahora es algo así como:¿Cómo puedo determinar si existe una función Perl en el tiempo de ejecución?
eval "&verify_precondition_TEST$n";
print [email protected] if [email protected];
Desafortunadamente, esto da salida a "subrutinas Indefinido & verify_precondition_TEST1 llamados a ..." si la función no existe.
¿Cómo puedo determinar de antemano si la función existe antes de intentar llamarla?
Esta es la evaluación incorrecta. Quieres bloquear eval, no string eval. Además, las pruebas si existe una función se pueden hacer con una evaluación de todos modos. –
Necesito usar eval de cadena porque $ n no se conoce en tiempo de compilación. –
No, no es así. Necesita usar referencias simbólicas. Vea mi respuesta para ver un ejemplo de cómo abordarlos. –