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 #### $VAR1 = { 'Supported Power State' => 'RPM, Powered off', 'Power State' => 'RPM', 'NCQ status' => 'Enabled', 'Status of logical device' => 'Optimal', 'Controller Status' => 'Optimal' };