Crucial to "[How Tcl is special]" is the pipeline. Through the syntax set channel [open |$external_command] Tcl [open]s an external process, and connects to the stdin, stdout, and stderr of $external_command. Reading and writing to stdin and stdout are with the usual Tcl I/O commands: [gets], [puts], and [read]. This makes for exceptionally handy [glue] for many situations. ---- Many Wiki pages and other references obliquely discuss or illustrate Tcl process pipelines. While the construction is crucial to a proper understanding of Tcl's capabilities, many newcomers take quite a while to come across an explanation that "gets through" to them. Among the pertinent available writings are * "[Concepts of Architectural Design for Tcl Applications]" * "Scripted wrappers for legacy applications" * ... ---- This transcript of an interaction session illustrates a simple pipeline with Unix's bc executable: % set channel [open |bc r+] file3 % puts $channel "1234567890 * 987654321" % flush $channel % puts [gets $channel] 1219326311126352690 ---- Do pipelines work on Windows and MacOS? On Windows NT and XP, the OS provides pipeline support.