---
name: "Tk::IO"
section: "3pm"
platform: "linux"
package: "perl-tk"
version: "804.036-9"
release: "Arch Linux 2026-11-01"
platforms: ["linux"]
url: "https://new.carta.tech/Tk::IO"
---

# Tk::IO(3pm)

high level interface to Tk's 'fileevent' mechanism

## NAME

Tk::IO - high level interface to Tk's 'fileevent' mechanism

## SYNOPSIS

```
  my $fh = Tk::IO->new(-linecommand => callback, -childcommand => callback);
  $fh->exec("command")
  $fh->wait
  $fh->kill
```

## WARNING

INTERFACES TO THIS MODULE MAY CHANGE AS PERL'S IO EVOLVES AND WITH PORT OF TK4.1

## DESCRIPTION

Tk::IO is now layered on perl's IO::Handle class. Interfaces have changed, and are still evolving.

In theory C methods which enable non-blocking IO as in earlier Tk-b\* release(s) are still there. I have not changed them to use perl's additional Configure information, or tested them much.

Assumption is that **exec** is used to fork a child process and a callback is called each time a complete line arrives up the implied pipe.

"line" should probably be defined in terms of perl's input record separator but is not yet.

The -childcommand callback is called when end-of-file occurs.

`$fh`-\>**wait** can be used to wait for child process while processing other Tk events.

`$fh`-\>**kill** can be used to send signal to child process.

## BUGS

Still not finished. Idea is to use "exec" to emulate "system" in a non-blocking manner.
