The Term::VT102 Perl module provides emulation of a VT102 terminal.

Like the `expect' Tcl extension, this module is intended primarily for use as a way of automating processes; for instance, you can write a script which connects via telnet to a full-screen service of some kind (such as a router, or a telephone switch), uses this module to parse the output, and therefore can tell what is currently "on the screen" and react accordingly. `expect' cannot really do this, as it is stream-oriented, rather than being able to tell you, say, what's on the top row of the screen.

You can download the latest version from here or from your nearest CPAN mirror.

Someone else has also developed a Ruby port of this Perl module.

This software is distributed under the terms of the Artistic License.

To get in touch, please use the Contact Form.

Credit is also due to:


0.91 - 9 November 2008
  • patch from Jörg Walter to fix Unicode handling
  • minor escape sequence processing cleanup
  • properly ignore / process sequences ending in ESC \
  • new callback STRING for receiving strings from the above
  • new method to return row text with SGR colour/attributes
  • fixed line wrapping to wrap AFTER last column filled
  • implemented tab stops
  • added example script that strips control codes from log files
  • new GOTO and LINEFEED callbacks
0.82 - 29 September 2004
  • added example script showing how to use Term::VT102 with SSH
  • minor undef warning fix in SM/RM handling
0.80 - 25 April 2004
  • implemented XON/XOFF and added new option IGNOREXOFF
0.79 - 9 December 2003
  • documentation additions
  • investigated bug reported by Paul Stoddard
  • very minor code cleanups
0.78 - 13 December 2002
  • partial implementation of SM/RM
  • DECTCEM (cursor on/off)
0.77 - 27 November 2002
  • implemented DECSC/DECRC (state save/restore)
  • implemented CUPSV/CUPRS (cursor position save/restore)
0.75 - 4 August 2002
  • corrected attribute behaviour when lines inserted/deleted/scrolled
  • example script showing how to use Term::VT102 with Net::Telnet
  • added optional column params to row_attr(), row_text(), row_plaintext()
  • implemented DECALN
0.74 - 29 April 2002
  • imported into CVS
  • directory structure flattened (no more pointless lib/Term directory)
  • created files TODO and Changes
  • code formatting changes (i.e. use TABs for indent, spaces for formatting)
  • fixed silly TAB handling problem - no longer write spaces when TABbing
0.73 - 2 November 2001