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

Can someone help with this script please. I know it's probably easy but I'm more of a perl tweaker/Cisco man than a coder.

2nd and 3rd sections work fine creating the variables needed for later but the first section doesn't. @output is a grab of show ver command on a Cisco device, but in the sample code you can take this as sample outputs above.

# Get the line with the chassis on foreach (@output) { # (NX-OS devices - Chassis and memory) # Sample output # Hardware # cisco Nexus 3048 Chassis ("48x1GE + 4x10G Supervisor") # Intel(R) Celeron(R) CPU P450 with 3981680 kB of memory. if (/^Hardware/i) { $details{'Chassis'} = $1 if (/^\S+ cisco Nexus (\S+)/i); $details{'Main Memory'} = $5 if (/^\S+ Intel (\S+)/i); }

Here we would expect Chassis value to be 3048 and Main Memory value to be 3981680

# (IOS devices - Chassis and Main Memory) # Sample output # Cisco CISCO2901/K9 (revision 1.0) with 483328K/40960K bytes of memor +y. if (/^cisco ((Catalyst )?\S+) .* with (\S+) bytes of memory/i) { $details{'Chassis'} = $1; $details{'Main Memory'} = $3; }

Correct values of Chassis=CISCO2901/K9 and Main Memory=483328K obtained

# (WS-C3550-48's - Chassis) # Sample output # cisco WS-C3550-48 (PowerPC) processor (revision N0) with 65526K/8192 +K bytes of memory. # Model number: WS-C3550-48-SMI $details{'Chassis'} = $1 if (/^Model number: (\S+)/i); }

Correct value of Chassis=WS-C3550-48-SMI obtained.