$text = "some some datadatamore dataeven more data";
my $depth = 0;
$text =~ s{(<(/)?paragraph>)}{check($depth)}gie;
print "$text\n";
sub check {
if($2) {
$_[0]--;
if($_[0] == 0) {
return $1;
}
$_[0] = 0 if $_[0] < 0;
} else {
$_[0]++;
return $1 if $_[0] == 1;
}
return '';
}