my @sections = $str =~ m/^===Comments===\n(.*?)\n=.*?=$/gms; print Dumper(\@sections); print "\n\nOR\n\n"; my %sections = reverse( $str =~ m/^===Comments===\n(.*?)\n=(.*?)=$/gms ); print Dumper(\%sections); print "\n\nOR\n\n"; while($str =~ m/^===Comments===\n(.*?)\n=(.*?)=$/gms) { print " $2 : $1\n"; }