Tcl (Tool Command Language, gesprochen „tickle“) ist eine interpretierte Skriptsprache, die John Ousterhout ab 1988 an der University of California, Berkeley als Makrosprache für ein CAD-System entwickelte. Ihr Markenzeichen: In Tcl ist alles ein Befehl — Programme bestehen aus Befehlen, die als Zeichenketten geschrieben und vom Interpreter Schritt für Schritt ausgeführt werden.
Erste Schritte
Der Interpreter tclsh führt Skripte aus, wish startet die GUI-Variante mit dem Tk-Toolkit. Ein erstes Programm:
#!/usr/bin/env tclsh
puts "Hallo Welt"
set x 5
puts [expr {$x * 2}]
Variablen werden mit set gesetzt, mit $name gelesen. Eckige Klammern […] führen einen verschachtelten Befehl aus, geschweifte Klammern {…} unterdrücken jede Substitution.
Wichtige Befehle
- Kontrollfluss:
if,while,for,foreach,switch,break,continue,return - Funktionen:
procdefiniert Prozeduren,upvar/globalgreifen auf andere Kontexte zu - Listen & Strings:
list,lappend,lindex,lrange,lsort,string,format,scan - Datenstrukturen:
array(assoziative Felder),dict(Wörterbücher) - System:
exec(Programme starten),open/close(Dateien und Pipes),file,clock,info - Modularität:
source,package require,namespace - Fehlerbehandlung:
catch,error
Praxis-Tipps
- Tcl lässt sich leicht einbetten und erweitern — fremde Programme registrieren über die C-API eigene Befehle. Das Automatisierungswerkzeug Expect baut darauf auf.
- Die Python-GUI
tkinterbasiert auf Tcl/Tk, Tk ist also auch außerhalb der Tcl-Welt allgegenwärtig. - Mit
exprwerden Zahlen gerechnet; der Ausdruck gehört aus Geschwindigkeitsgründen in geschweifte Klammern:expr {$x + 1}. - Befehle sind Zeichenketten — ungewöhnliche Werte (Leerzeichen, Sonderzeichen) werden mit
listkorrekt verpackt, statt Strings von Hand zusammenzusetzen.
Verwandte Grundlagen: Bash-Befehle, Perl-Befehle, Python-Befehle, Smalltalk-Befehle, Haxe-Befehle.