Beefy Boxes and Bandwidth Generously Provided by pair Networks
laziness, impatience, and hubris
 
PerlMonks  

Re: Parse variables from @output

by BillKSmith (Monsignor)
on Nov 14, 2019 at 23:34 UTC ( #11108705=note: print w/replies, xml ) Need Help??


in reply to Parse variables from @output

You have provided your input (strangely called '@output') only as comments. We cannot tell exactly how this is broken into array elements or how those elements are broken into lines. Please post code that we can run and actually see the results that are correct and duplicate your problem. The following code should get you started. Please correct errors I may have made in understanding your data.
use strict; use warnings; use Data::Dumper; my @output = ( qq/"Hardware\n/ .qq/"cisco Nexus 3048 Chassis ("48x1GE + 4x10G Supervisor")\n/ .qq/Intel(R) Celeron(R) CPU P450 with 3981680 kB of memory.\n/ , qq/Cisco CISCO2901\/K9 (revision 1.0)/ .qq/ with 483328K\/40960K bytes of memory.\n/ , qq/cisco WS-C3550-48 (PowerPC) processor (revision N0)/ .qq/ with 65526K\/8192K bytes of memory.\n/ .qq/Model number: WS-C3550-48-SMI\n/ ); foreach (@output) { my %details; if (/^Hardware/i) { $details{'Chassis'} = $1 if (/^cisco Nexus (\S+)/i); $details{'Main Memory'} = $1 if (/^Intel (\S+)/i); } if (/^cisco ((Catalyst )?\S+) .* with (\S+) bytes of memory/i) { $details{'Chassis'} = $1; $details{'Main Memory'} = $3; } $details{'Chassis'} = $1 if (/^Model number: (\S+)/i); print Dumper(\%details); }
Bill

Replies are listed 'Best First'.
Re^2: Parse variables from @output
by Cisco_Dave (Novice) on Nov 15, 2019 at 00:33 UTC

    Yes that's on the right lines Bill thanks. Will test again tomorrow.

    Essentially in this example there are three different contents for @output depending on the type of device the show ver command is run on. Each if statement determines which of the three it is, i.e. if there is a regex match for the line it uses that version of @output and sets the variables for chassis and memory from the output there

      Still struggling, update in main thread :(

Log In?
Username:
Password:

What's my password?
Create A New User
Domain Nodelet?
Node Status?
node history
Node Type: note [id://11108705]
help
Chatterbox?
and the web crawler heard nothing...

How do I use this? | Other CB clients
Other Users?
Others romping around the Monastery: (1)
As of 2021-10-20 22:16 GMT
Sections?
Information?
Find Nodes?
Leftovers?
    Voting Booth?
    My first memorable Perl project was:







    Results (82 votes). Check out past polls.

    Notices?