http://www.perlmonks.org?node_id=1047355


in reply to Help with my regex

How about just parsing the whole thing, and afterward using those fields you're interested in, and simply ignore the rest?

use strict; use warnings; use 5.010; my %states; while (<DATA>) { chomp; if (/^ ([^:]+) : \s+ (.*)/x) { $states{$1} = $2; } } use Data::Dumper; print Dumper \%states; __DATA__ Controller Status: Optimal NCQ status: Enabled Status of logical device: Optimal Power State: RPM Supported Power State: RPM, Powered off

Prints

$VAR1 = { 'Supported Power State' => 'RPM, Powered off', 'Power State' => 'RPM', 'NCQ status' => 'Enabled', 'Status of logical device' => 'Optimal', 'Controller Status' => 'Optimal' };

So all the interesting (and some of the uninteresting) data is in %states.