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);
}
-
Are you posting in the right place? Check out Where do I post X? to know for sure.
-
Posts may use any of the Perl Monks Approved HTML tags. Currently these include the following:
<code> <a> <b> <big>
<blockquote> <br /> <dd>
<dl> <dt> <em> <font>
<h1> <h2> <h3> <h4>
<h5> <h6> <hr /> <i>
<li> <nbsp> <ol> <p>
<small> <strike> <strong>
<sub> <sup> <table>
<td> <th> <tr> <tt>
<u> <ul>
-
Snippets of code should be wrapped in
<code> tags not
<pre> tags. In fact, <pre>
tags should generally be avoided. If they must
be used, extreme care should be
taken to ensure that their contents do not
have long lines (<70 chars), in order to prevent
horizontal scrolling (and possible janitor
intervention).
-
Want more info? How to link
or How to display code and escape characters
are good places to start.
|