pipethread is a module by rkeene that implements thread-based concurrency and parallelism. It gives you the | from sh in Tcl, for Tcl code.

Tcl 2016 Presentation:

Use examples

proc a {inchan outchan} { puts $outchan blah }
pipethread::pipe a | { gets $inchan line; puts $outchan "[string length $line]:$line" }

set output [pipethread::pipe exec ls | foreach line { puts $outchan "-->$line<--" }]

pipethread::pipe -outchan stdout -- exec ls | foreach line { puts $outchan "-->$line<--" }


PYK {2016 07 24}: SCSH is a related contraption for Scheme.