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: proc definiert Prozeduren, upvar/global greifen 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 tkinter basiert auf Tcl/Tk, Tk ist also auch außerhalb der Tcl-Welt allgegenwärtig.
  • Mit expr werden 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 list korrekt verpackt, statt Strings von Hand zusammenzusetzen.

Verwandte Grundlagen: Bash-Befehle, Perl-Befehle, Python-Befehle, Smalltalk-Befehle, Haxe-Befehle.