my @lines = grep(defined, split(/.{80}/, $data)); my %data; foreach (@lines) { last if(/^END /); if(/^([^\s]+)\s*=\s*(.*?)\s*$/) { $data{$1} = $2; } }