use strict; my $data = do {local $/; }; $data =~ s{(?<=\?\>)(.*?)(?=\<\?)}{printf('$1');}sg; print $data; __DATA__ blah blah blah