Welcome to the Tcl tutorial. We wrote it with the goal of helping you to learn Tcl. It is aimed at those who have some knowledge of programming, although you certainly don't have to be an expert. The tutorial is intended as a companion to the Tcl manual pages which provide a reference for all Tcl commands.
It is divided into brief sections covering different aspects of the language. Depending on what system you are on, you can always look up the reference documentation for commands that you are curious about. On Unix for example, man while would bring up the man page for the while command.
Each section is accompanied by relevant examples showing you how to put to use the material covered.
Evaluation and Substitutions 1: Grouping arguments with ""
Evaluation and Substitutions 2: Grouping arguments with {}
Evaluation and Substitutions 3: Grouping arguments with []
Results of a command - Math 101
Adding new commands to Tcl - proc
Variations in proc arguments and return values
Variable scope - global and upvar
Tcl Data Structures 101 - The list
Adding and Deleting members of a list
More list commands - lsearch, lsort, lrange
Simple pattern matching - "globbing"
String Subcommands - length index range
String comparisons - compare match first last wordend
Modifying Strings - tolower, toupper, trim, format
More Examples Of Regular Expressions
More Quoting Hell - Regular Expressions 102
More On Arrays - Iterating and use in procedures
Changing Working Directory - cd, pwd
Information about Files - file, glob
Running other programs from Tcl - exec, open
Channel I/O: socket, fileevent, vwait
More channel I/O - fblocked and fconfigure
Communicating with other programs - socket, fileevent
Learning the existence of commands and variables - info
State of the interpreter - info
Information about procs - info
Debugging and Errors - errorInfo errorCode catch error return
Building reusable libraries - packages and namespaces
Building and distributing applications
More command construction - format, list
Substitution without evaluation - format, subst
Command line arguments and environment strings
Object-oriented programming 101
More on object-oriented programming
The Tcl Developer Guide provides information related to extending and embedding Tcl, and to bundling extensions and scripts into packages.
The Tcl community is an exceedingly friendly one. It's polite to try and figure things out yourself, but if you're struggling, we're more than willing to help. Here are some good places to get help:
A recent book on Tcl, one that describes the latest features, is The Tcl Programming Language by Ashok P. Nadkarni.
Thanks first and foremost to Clif Flynt for making his material available under a BSD license. The following people also contributed:
Of course, we also welcome comments and suggestions about how it could be improved - or if it's great the way it is, we don't mind a bit of thanks, either!