You have:
.qq/ cisco Nexus 3048 Chassis ("48x1GE + 4x10G Supervisor)\n/
but your match wants cisco to appear at the start of a line:
$details{'Chassis'} = $1 if (/^cisco Nexus (\S+)/i);
You will need to allow for some whitespace in front of cisco, for example by allowing for \s*:
$details{'Chassis'} = $1 if (/^\s*cisco Nexus (\S+)/i);
But "start of the line" (^) means "start of the whole string" to Perl unless you also tell it to match after a newline using the /m modifier:
$details{'Chassis'} = $1 if (/^\s*cisco Nexus (\S+)/mi);
Adding that, I get:
$VAR1 = { 'Chassis' => '3048' }; $VAR1 = { 'Main Memory' => '483328K/40960K', 'Chassis' => 'CISCO2901/K9' }; $VAR1 = { 'Chassis' => 'WS-C3550-48', 'Main Memory' => '65526K/8192K' };
In reply to Re^2: Parse variables from @output
by Corion
in thread Parse variables from @output
by Cisco_Dave
| For: | Use: | ||
| & | & | ||
| < | < | ||
| > | > | ||
| [ | [ | ||
| ] | ] |