There are three ways, all of which are documented in the perldocs for Net::Telnet. The first is to just grab the return values from the cmd method:
use Net::Telnet ();
$t = new Net::Telnet (Timeout => 10,
Prompt => '/bash\$ $/');
$t->open("sparky");
$t->login($username, $passwd);
@lines = $t->cmd("who");
print @lines;
The second is to grab the raw input from the telnet stream (not recommended) that has already arrived:
$ref = $obj->buffer;
The third is to go and grab new raw data on its way in:
$data = $obj->get([Binmode => $mode,]
[Errmode => $errmode,]
[Telnetmode => $mode,]
[Timeout => $secs,]);
The getline and getlines methods are probably much easier to deal with than get, and work on the same principles.
I highly recommend reading the perldoc info on Net::Telnet very thoroughly, even though it is rather tedious. I learn something every time I read it. I also recommend using the debugging/logging methods for a while. I have found them to be invaluable when trying to figure out why my patterns are(n't) matching some weird binary input. (The buffer_empty method is your friend.)
Hope that helps!
--J |