foreach (<<'-1-', <<'-2-') { -1- -2- if(m[^]sm) { (undef, my %data) = split /\s*^\s*(\w+)\s+=[^\S\n]*\n?/m, $1, -1; use Data::Dumper; print Dumper \%data; } else { print "No match\n"; } } #### $VAR1 = { 'blort' => '', 'foo' => 'Yes', 'bar' => '0', 'home_url' => 'http://www.foo.com/some/really/long/url' }; $VAR1 = { 'blort' => '', 'foo' => 'Yes', 'bar' => '0', 'home_url' => 'http://www.foo.com/some/really/long/url' };