Estoy haciendo eval
en el contenido del archivo. El archivo está hecho de etiquetas que analizo. Cada línea tiene una etiqueta, y tengo un proc
definido para cada etiqueta, por lo que el eval
tiene éxito. Sin embargo, a veces los usuarios agregan etiquetas nuevas y luego falla el comando eval
, debido a un comando desconocido.Prevenir que Tcl se bloquee en el comando desconocido
¿Hay alguna manera de evitar que Tcl se bloquee al intentar eval
un comando desconocido?
Lo ideal es que me permita sustituirlo por mi propio comportamiento definido, como por ejemplo el error y continuar con el eval
.
EDITAR:
Por desgracia, sólo se puede utilizar Tcl 8.4.
He intentado hacer lo siguiente, as suggested here:
proc handle_unknown_label {cmd args} { ... }
y luego:
rename unknown _old_system_unknown
rename handle_unknown_label unknown
catch {set ret [eval $x]} err
rename unknown handle_unknown_label
rename _old_system_unknown unknown
pero sigo teniendo el mismo comportamiento para el eval
, e imprime los siguientes errores:
procedimiento desconocido es un proceso protegido y no cambiará de nombre
procedimiento desconocido es un pro tegido proc y no conseguirá anulado
procedimiento desconocido es un proc protegida y no se renombran
procedimiento desconocido es un proc protegido y no conseguirán anulado
no aplicable, pero si está leyendo un archivo y lo está evaluando, también puede simplemente buscar el archivo en su lugar, ¿no? –
en qué entorno está este intérprete Tcl? No estoy familiarizado con ese error de "proc protegido". –
@glenn Interesante. Entonces, ¿podría tratarse de algo inhabilitado en mi empresa? –