Donc, fondamentalement, dans mon script tcl, je génère une ligne de code tcl que je dois exécuter (c'est-à-dire que je trouve cette instruction pendant l'exécution). Une fois que j'ai l'instruction tcl disons par exemple "hello world $ test_var". Comment l'exécuter en utilisant tcl? Est-ce que j'utilise la commande eval ou quoi?Comment utiliser l'instruction eval dans tcl
0
A
Répondre
1
Je crains que vous n'avez pas d'autre choix raisonnable que d'utiliser la commande eval
, par exemple:
set variable {puts "hello world $test_var"}
eval $variable
4
La commande eval
est un moyen raisonnable de le faire, mais vous voudrez peut-être envisager d'utiliser au lieu catch
, puisque ce piégera les problèmes éventuels lors de l'évaluation du code généré, par exemple comme ceci:
# Generate the code somehow
set variable {puts "hello word $test_var"}
# Execute and trap problems
if {[catch $variable resultMsg]} {
# An error (or other exception) happened
puts stderr "BOOM, Error! $resultMsg"
}
2
au lieu d'utiliser [eval] qui fonctionne parfaitement bien, dans les versions les plus récentes de Tcl, vous pouvez utiliser e e {*} syntaxe. Par exemple:
set cmd "puts"
lappend cmd "abcd ef"
{*}$cmd
Notez que c'est une bonne habitude d'utiliser la liste des commandes pour construire votre commande afin que vous ne serez rencontrez des problèmes citant.
Questions connexes
- 1. Utiliser eval dans Watin
- 2. Rest Framework/Bibliothèque à utiliser dans TCL
- 3. Comment utiliser eval sur jquery plugin variable?
- 4. Dois-je utiliser eval dans javascript?
- 5. Comment utiliser Eval dans codebehind pour définir Page.Title
- 6. comment utiliser la fonction eval dans telerik: RadTicker?
- 7. Comment utiliser la valeur Eval ("x") dans ListView
- 8. Comment utiliser une fonction ASP.NET Eval() dans un opérateur ternaire?
- 9. Tcl/Tk - comment obtenir l'invite après avoir exécuté une commande en utilisant eval?
- 10. TCL: Concernant le fichier init.tcl dans TCL
- 11. pouvons-nous utiliser foreach boucle comme ça dans tcl?
- 12. Comment appeler Eval dans codebehind?
- 13. Comment installer des paquets dans Tcl?
- 14. erreur d'analyse dans eval() - eval() 'd code
- 15. Python: devrais-je utiliser eval, exec ou ..?
- 16. eval dans smarty/codeigniter
- 17. Devrions-nous utiliser Eval ou l'événement Databind?
- 18. TCL comment appeler les gestionnaires d'articles
- 19. Appel Perl dans Tcl
- 20. Appelle une fonction sans utiliser eval?
- 21. Comment utiliser JSON.parse ou eval() pour afficher un tableau?
- 22. utilisant Eval dans vb.net
- 23. Comment imprimer un proc tcl?
- 24. Comment appeler des classes dynamiquement sans utiliser eval?
- 25. Comment puis-je utiliser js eval pour renvoyer une valeur?
- 26. tcl 8.6 paquet dans 8.4
- 27. Variable statique dans Tcl
- 28. lcontain dans tcl 8.5.9
- 29. Informations SNMP dans TCL
- 30. Puis-je utiliser la boucle dans <%#Eval()%> bloc
Pourquoi avoir peur? Que crains-tu? –
Dans cet exemple, il n'y a rien à craindre. Mais j'ai déjà eu des cas où il était assez difficile de faire face à 'eval' sans faire quelque chose de mal. Malheureusement, je ne me souviens pas du problème exact pour le moment. Cela avait quelque chose à voir avec des citations correctes et, pour autant que je m'en souvienne, c'était même un 'eval' imbriqué (mais à la fin cela a fonctionné correctement). – bmk