나는 파일 내용에 eval
을하고 있습니다. 파일은 내가 분석 한 레이블로 만들어져 있습니다. 각 줄에는 레이블이 있으며 각 레이블에 proc
이 정의되어 있으므로 eval
이 성공합니다. 그러나 알 수없는 명령으로 인해 사용자가 새 레이블을 추가 한 다음 eval
명령이 실패하는 경우가 있습니다.알 수없는 명령에서 Tcl이 충돌하지 않도록하기
알려지지 않은 명령이 eval
일 때 Tcl이 충돌하는 것을 방지 할 수있는 방법이 있습니까?
이상적으로는 오류를 priting하고 eval
같이 계속 내 자신의 정의 된 동작으로 대체 할 수 있어야합니다.
편집는 :
불행하게도, 난 단지는 Tcl 8.4을 사용할 수 있습니다. 다음
proc handle_unknown_label {cmd args} { ... }
과 :
난 다음, as suggested here 일을 시도
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
하지만 난 여전히 eval
에 대해 동일한 동작을 얻을, 그리고 다음과 같은 오류 인쇄 :
을절차 알 수없는 보호 된 proc이며 이름이 바뀌지 않습니다
프로 시저 알 수없는 프로 tected proc 디렉토리 및
절차 알 수없는 오버라이드 (override)되지 않습니다는 보호 PROC이며
절차 알 수없는 보호 된 PROC입니다 이름이 변경되지 않습니다와 같은 소요되는
해당 사항 없음 그러나 파일을 읽고 평가 중이라면 대신 파일을 원본으로 사용할 수 있습니까? –
이 Tcl 인터프리터는 어떤 환경입니까? 나는 그 "보호 된 proc"오류에 익숙하지 않다. –
@ 글렌 흥미 롭습니다. 이게 내 회사에서 무력화 된 것일 수 있니? –