#!/usr/bin/perl
use strict; # https://perlmonks.org/?node_id=11119658
use warnings;
$_ = <<END;
## This gets stripped
## This doesn't
Because it contains this line
## More headers
blah blah
## this also should be stripped ?
## This should not get stripped, but it does
### This should prevent it from getting stripped, but it doesn't
stuff
#### This should also not get stripped
##### But it does
isn't some text needed here?
END
s/^(#+).*\n\n(?!^\1#)//gm;
print;
Outputs:
## This doesn't
Because it contains this line
## More headers
blah blah
## This should not get stripped, but it does
### This should prevent it from getting stripped, but it doesn't
stuff
#### This should also not get stripped
##### But it does
isn't some text needed here?
I think a larger test case may be needed...