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


in reply to Re: Expect.pm control terminal width
in thread Expect.pm control terminal width

problem with converting it over to Net::SSH::Expect is that the script is completely done and is around 4k lines of code. It just recently became a problem because of some changes on the devices that have longer outputs so I'd have to competely re-write the script.
$object->stty(qw("cols 200"));
Returns:
IO::Stty::stty passed invalid parameter '"cols'
IO::Stty::stty passed invalid parameter '200"'
I also tried columns, no quotes, etc.

Replies are listed 'Best First'.
Re^3: Expect.pm control terminal width
by broomduster (Priest) on Oct 07, 2008 at 22:19 UTC
    Drop the quotation marks (the ones inside the qw):
    $object->stty(qw(cols 200));
    What you have is passing "cols and 200" to stty, which it does not recognize (as indicated in the error messages). Also note that according to the docs, you probably want to be using the slave side of the pty:
    $object->slave->stty(qw(cols 200));
      Yea, thats what I was saying, I tried without quotes as well.
      Basically below is what I have:
      $acnsex = new Expect(); $acnsex->slave->stty(qw(cols 200)); $acnsex->spawn("ssh -q -o 'UserKnownHostsFile ./output/keys.txt' -o 'S +trictHostKeyChecking no' -l $username $acns"); $acnsex->log_user(0); $acnsex->expect(10, '-re', 'password:');
      Also, looking at stty.pm I don't see that cols is a valid parameter which makes since with that error msg.