my $data = '<%def .errors> missing_name: You must provide your name. missing_email: You must provide your email address. '; my ( $errors ) = $data =~ m[\Q<%def .errors>\E\n (.*\n) \Q\E ]sx; my %errors = $errors =~ m{(\w+):\s*(.*?)\n}g; print Dumper \%errors; #### $VAR1 = { 'missing_email' => 'You must provide your email address.', 'missing_name' => 'You must provide your name.' };