> -----Original Message-----
> From: Larsen, Errin M HMMA/IT
> Sent: Thursday, February 10, 2005 2:37 PM
> To: [email protected]
> Subject: Loops & regexps
>
>
> Hi everyone,
>
> I've got a command (if you're familiar with EMC and
> PowerPath, you'll recognize the output) that outputs a long
> list of information like this:
>
<< example output snipped>>
>
> That's the output from ONE device, there are sometimes hundreds of
> these. What I'd like to do is transform this into the following:
>
<< desired output snipped>>
>
> I wrote some code to attempt this, but I'm way off ... I know
> there's a way to do this, it's just eluding me. The code I
> was trying out is below. I wouldn't run it, it fails miserably:
>
<< Horrible Code snipped>>
> Thanks ahead-of-time for any help!
>
> --Errin
>
Ok, I got it working. This code only works if you assume a correct
order, but with the command I'm using that order does not change:
#!/usr/bin/perl
use warnings;
use strict;
my @powerout = `powermt display dev=all`;
my $name;
my @devices;
foreach( @powerout ) {
$name = $1 if( /Pseudo.+(emc.+)$/ );
push @devices, "$name -> $1" if( /(c\dt.+)s\d/ );
}
print "$_\n" foreach @devices
It turns out it was lot simpler than I was thinking.
--Errin
--
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]
<http://learn.perl.org/> <http://learn.perl.org/first-response>