sashac88 has asked for the wisdom of the Perl Monks concerning the following question:

Good morning,Monks.
I'm trying to do some functions on a switch.   The function depends on the output from the previous command.   How do I get the output from switch into variable?

I use Net::Telnet to connect to the switch -it works fine.
Thanks in advance.

janitored by ybiC: Retitle from "Net::Telnet" because onewordnodetitles hinder site search, minor format tweaks for legibility

Replies are listed 'Best First'.
Re: Net::Telnet and telnet command output
by Rhys (Pilgrim) on Oct 04, 2004 at 12:32 UTC
    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

      The problem is that neither solution works.
      I've tried all of them already.
      That's why I asked here.
      Is there anything else I can try?
      I guess the problem is that the switch doesn't act like
      the regular operating system
      .

        Perhaps if you showed us your current script and explained what it was doing wrong we could help better.


        ___________
        Eric Hodges