Tcl Tutorial Index

Getting started


Running Tcl

Simple Text Output

Assigning values to variables

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

Computers and Numbers

Flow Control

Numeric Comparisons 101 - if

Textual Comparison - switch

Looping 101 - While loop

Looping 102 - For and incr

Adding new commands to Tcl - proc

Variations in proc arguments and return values

Variable scope - global and upvar

Data Types

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

Regular Expressions 101

More Examples Of Regular Expressions

More Quoting Hell - Regular Expressions 102

Associative Arrays

More On Arrays - Iterating and use in procedures


Input and Output

File Access 101

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

Time and Date - clock

Introspection, Debugging and Performance

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

More Debugging - trace

Timing scripts

Modularization and Code Reuse

Modularization - source

Building reusable libraries - packages and namespaces

Cooperating with the interpreter

Creating Commands - eval

More command construction - format, list

Substitution without evaluation - format, subst

Command line arguments and environment strings

Child interpreters

Programming techniques

Object-oriented programming 101

More on object-oriented programming

Programming with coroutines