use strict; my $s = '

something something

blah blah blah

something something

'; my $start = '

'; my $end = '

'; my $first = index($s,$start); my $last = index($s,$end,$first); substr($s, $first, $last-$first+length $end) = '

'.substr($s,$first+length $start,$last-$first-length $start).'

'; print $s; #### while(1) { if( index( substr( $s, $start_pos, $end_pos-$start_pos ), $start_tag ) != -1 ) { $end_pos = index( $s, $end_tag, ++$end_pos ); } else { last; # $end_pos is good } }