use strict; use warnings; use 5.010; my %states; while () { 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