Softpedia
 


LINUX CATEGORIES:



GLOBAL PAGES >>
NEWS ARCHIVE >>
SOFTPEDIA REVIEWS >>
MEET THE EDITORS >>
WEEK'S BEST
  • Linux Kernel 3.9.2 / 3....
  • LibreOffice 3.6.6 / 4.0.3
  • MPlayer 1.1.1
  • systemd 204
  • Arch Linux 2013.05.01
  • Blender 2.67
  • KDE Software Compilatio...
  • CrunchBang Linux Stable...
  • Elementary OS 0.1 / 0.2...
  • SystemRescueCd 3.6.0
  • Home > Linux > Programming > Perl Modules

    Expect 1.21

    Download button

    No screenshots available
    Downloads: 701  View global page NEW!  Tell us about an update
    User Rating:
    Rated by:
    NOT RATED
    0 user(s)
    Developer:

    License / Price:

    Last Updated:

    Category:
    Roland Giersig | More programs
    Perl Artistic License / FREE
    July 10th, 2009, 22:18 GMT
    ROOT / Programming / Perl Modules

     Read user reviews (0)  Refer to a friend  Subscribe

    Expect description

    Expect for Perl

    Expect is a Perl module that is the successor of Comm.pl and a descendent of Chat.pl. It more closely ressembles the Tcl Expect language than its predecessors. It does not contain any of the networking code found in Comm.pl. I suspect this would be obsolete anyway given the advent of IO::Socket and external tools such as netcat.

    Expect.pm is an attempt to have more of a switch() & case feeling to make decision processing more fluid. Three separate types of debugging have been implemented to make code production easier.

    It is possible to interconnect multiple file handles (and processes) much like Tcl's Expect. An attempt was made to enable all the features of Tcl's Expect without forcing Tcl on the victim programmer .

    SYNOPSIS

     use Expect;

     # create an Expect object by spawning another process
     my $exp = Expect->spawn($command, @params)
     or die "Cannot spawn $command: $!
    ";

     # or by using an already opened filehandle (e.g. from Net::Telnet)
     my $exp = Expect->exp_init(*FILEHANDLE);

     # if you prefer the OO mindset:
     my $exp = new Expect;
     $exp->raw_pty(1);
     $exp->spawn($command, @parameters)
     or die "Cannot spawn $command: $!
    ";

     # send some string there:
     $exp->send("string
    ");

     # or, for the filehandle mindset:
     print $exp "string
    ";

     # then do some pattern matching with either the simple interface
     $patidx = $exp->expect($timeout, @match_patterns);

     # or multi-match on several spawned commands with callbacks,
     # just like the Tcl version
     $exp->expect($timeout,
     [ qr/regex1/ => sub { my $exp = shift;
     $exp->send("response
    ");
     exp_continue; } ],
     [ "regexp2" , &callback, @cbparms ],
     );

     # if no longer needed, do a soft_close to nicely shut down the command
     $exp->soft_close();

     # or be less patient with
     $exp->hard_close();


    Expect.pm is built to either spawn a process or take an existing filehandle and interact with it such that normally interactive tasks can be done without operator assistance. This concept makes more sense if you are already familiar with the versatile Tcl version of Expect. The public functions that make up Expect.pm are:

     Expect->new()
     Expect::interconnect(@objects_to_be_read_from)
     Expect::test_handles($timeout, @objects_to_test)
     Expect::version($version_requested | undef);
     $object->spawn(@command)
     $object->clear_accum()
     $object->set_accum($value)
     $object->debug($debug_level)
     $object->exp_internal(0 | 1)
     $object->notransfer(0 | 1)
     $object->raw_pty(0 | 1)
     $object->stty(@stty_modes) # See the IO::Stty docs
     $object->slave()
     $object->before();
     $object->match();
     $object->after();
     $object->matchlist();
     $object->match_number();
     $object->error();
     $object->command();
     $object->exitstatus();
     $object->pty_handle();
     $object->do_soft_close();
     $object->restart_timeout_upon_receive(0 | 1);
     $object->interact($other_object, $escape_sequence)
     $object->log_group(0 | 1 | undef)
     $object->log_user(0 | 1 | undef)
     $object->log_file("filename" | $filehandle | &coderef | undef)
     $object->manual_stty(0 | 1 | undef)
     $object->match_max($max_buffersize or undef)
     $object->pid();
     $object->send_slow($delay, @strings_to_send)
     $object->set_group(@listen_group_objects | undef)
     $object->set_seq($sequence,&function,@parameters);


    There are several configurable package variables that affect the behavior of Expect. They are:

     $Expect::Debug;
     $Expect::Exp_Internal;
     $Expect::IgnoreEintr;
     $Expect::Log_Group;
     $Expect::Log_Stdout;
     $Expect::Manual_Stty;
     $Expect::Multiline_Matching;
     $Expect::Do_Soft_Close;



    Product's homepage

    Requirements:

    · Perl

      


    TAGS:

    Perl Expect | Perl module | Perl | Expect | module

    Go to top

    WindowsGamesDriversMacLinuxScriptsMobileHandheldNews

    SUBMIT PROGRAM   |   ADVERTISE   |   GET HELP   |   SEND US FEEDBACK   |   RSS FEEDS   |   UPDATE YOUR SOFTWARE   |   ROMANIAN FORUM