
Expect.pm v1.14
===============

Expect requires the latest version of IO::Tty, also available from
CPAN.  IO::Stty has become optional but I'd suggest you also install
it.  If you use the highly recommended CPAN module, there is a
Bundle::Expect available that installs everything for you.

If you prefer manual installation, the usual

  perl Makefile.PL
  make
  make test
  make install

should work.  I finally started a testsuite for Expect, but it doesn't
really test anything deeper right now.  The problem is to find some
external program to use for generating reproducible output that is
available across all platforms.  Luckily, we can always use perl
itself...  Contributions to the testsuite are of course welcome.

Note that IO::Tty is very system-dependend.  It has been extensively
reworked and tested, but there still may be systems that have
problems.

The Perl Expect module was inspired more by the functionality of
Tcl/Expect than any previous Expect-like tool such as Comm.pl or
chat2.pl.

The Tcl version of Expect is a creation of Don Libes (libes@nist.gov)
and can be found at http://expect.nist.gov/.  Don has written an
excellent in-depth tutorial of Tcl/Expect, which is _Exploring
Expect_.  It is the O'Reilly book with the monkey on the front.  Don
has several references to other articles on the Expect web page.

I try to stay as close to Tcl/Expect in interface and semantics as
possible (so I can refer questions to the Tcl/Expect docu).
Suggestions for improvement are always welcome.

[Latest rumours have it that Don plans a rewrite of Expect as a
stand-alone library that can be easily embedded into various scripting
languages.]

There is now a FAQ section in the pod, complete with examples, so
please let me know if there's something you'd like to see answered
there that isn't.

There are two mailing lists available, expectperl-announce and
expectperl-discuss, at

  http://lists.sourceforge.net/lists/listinfo/expectperl-announce

and

  http://lists.sourceforge.net/lists/listinfo/expectperl-discuss


From the Changes file:
======================

! changed tests to check out pty behaviour (max. string length)

+ added various FAQ entries

+ added autoflush(1) to log_file

+ split 'new' and 'spawn' to be able to set slave pty params via stty
  before actually spawning the program

+ added raw_pty()

+ added notransfer()

+ added print_log_file(), send() now no longer prints to log file or stdout.

! spawn() now synchronizes child and parent, so exec errors are reported.

+ timeout handlers now also can exp_continue

+ added 'raw_pty' option, also setting master to raw if isatty()

+ added and corrected test for exit status; got rid of Test.pm

! use 'set_raw' instead of stty("raw"); IO::Stty now optional

+ updated docs & FAQs; explained how terminal sizes and SIGWINCH
  should be propagated

! fixed bug in log_file, parameter now gets set to undef.

! fixed select in interconnect, may return -1 if interrupted by signal.


Thanks to everybody who wrote to me, either with bug reports or
enhancement suggestions!

Roland Giersig (maintainer of Expect.pm, IO::Tty, IO::Stty, Tie::Persistent)
RGiersig@cpan.org

2002-03-12
