http://www.perlmonks.org?node_id=946009


in reply to Expect command output parser sub

This is brilliant!!!! Thank you so much for this.. I've been fooling around with this issue for over a year and never found anything satisfactory.

Here's what I was using so far... it does the job..but there was a need to match for a pattern anyway...

$sshMTT1->clear_accum(); $sshMTT1->expect(10,[qr/\$[\s]*/=> sub {$sshMTT1->send("grep <<<<<<*PA +TTERN>*>>>>");}]); @Output = $sshMTT1->expect(5); $sshMTT1->send("\cC"); $exactOutput = $Output[3]; $exactOutput =~ tr/\cM//d;

The variable $exactOutput had more or less the value I was looking for and I used to pattern match on this variable... Primitive.. compared to the solution here!!!

Replies are listed 'Best First'.
Re^2: Expect command output parser sub
by Davewhite (Acolyte) on Feb 23, 2012 at 12:23 UTC

    This subroutine fails to execute the command if the executed command isn't supposed to return any value ( for example the cd command or mkdir command.

    For example if we try to execute the cd <XYZ_Directory> command using this subroutine, the directory change doesn't happen at all.

    Any help to make it fucntional for such commands is welcome

      Any help to make it fucntional for such commands is welcome

      I would say its impossible so don't use it on such commands, or append ";pwd" so they do print output