#!/usr/local/bin/perl
##
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) with 483328K\/40960K bytes
+ of memory."\n/
,
qq/"cisco WS-C3550-48 (PowerPC) processor (revision N0) with 6552
+6K\/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);
}
Result...
$VAR1 = {};
$VAR1 = {};
$VAR1 = {};
Result needs to be...
$VAR1 = {
'Main Memory' => '3981680',
'Chassis' => '3048'
};
$VAR1 = {
'Main Memory' => '483328K/40960K',
'Chassis' => 'CISCO2901/K9'
};
$VAR1 = {
'Main Memory' => '65526K/8192K',
'Chassis' => 'WS-C3550-48'
};