in reply to Parsing output from a command
For information on these marvels of modern science, read perlretut. What I've done in the above is:use strict; use warnings; my $data; { local $/; $data = <DATA>; } my %drives = (); while ($data =~ /^(\w+)\s*.*?Serial Number\.*(\w*)\s/smg) { $drives{$1} = $2; } while ( my ($key, $value) = each %drives) { print "$key $value\n"; } __DATA__ hdisk0 P1/Z1-Aa 16 Bit LVD SCSI Disk Drive (18200 MB) Manufacturer................IBM Machine Type and Model......ST318305LC FRU Number..................09P4437 Serial Number...............0009E05B Part Number.................09P4436 hdisk1 P1/Z1-Ab 16 Bit LVD SCSI Disk Drive (18200 MB) Manufacturer................IBM Machine Type and Model......ST318305LC FRU Number..................09P4437 Serial Number...............0004A0D2 Part Number.................09P4436
|
|---|
| Replies are listed 'Best First'. | |
|---|---|
|
Re^2: Parsing output from a command
by Nkuvu (Priest) on Mar 24, 2009 at 16:18 UTC |