Beefy Boxes and Bandwidth Generously Provided by pair Networks
Perl Monk, Perl Meditation
 
PerlMonks  

Re^2: Parsing output from a command

by Nkuvu (Priest)
on Mar 24, 2009 at 16:18 UTC ( #752912=note: print w/ replies, xml ) Need Help??


in reply to Re: Parsing output from a command
in thread Parsing output from a command

Another approach would be to join the lines of the result and match against that. For example:

#!/usr/bin/perl use strict; use warnings; # Slurp! my @results = <DATA>; my $results_string = join '', @results; # Note: Direct assignment to hash works due # to exactly two matches. Error checking would # not be a bad idea, either (what happens if the # match fails?) my %matches = $results_string =~ /(hdisk\d+).+?Serial Number\.+(\w+)/g +s; for my $device (keys %matches) { print "$device $matches{$device}\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

Output:

hdisk1 0004A0D2 hdisk0 0009E05B


Comment on Re^2: Parsing output from a command
Select or Download Code

Log In?
Username:
Password:

What's my password?
Create A New User
Node Status?
node history
Node Type: note [id://752912]
help
Chatterbox?
and the web crawler heard nothing...

How do I use this? | Other CB clients
Other Users?
Others contemplating the Monastery: (5)
As of 2014-09-20 14:50 GMT
Sections?
Information?
Find Nodes?
Leftovers?
    Voting Booth?

    How do you remember the number of days in each month?











    Results (160 votes), past polls