while (<>) { print; last if /^PART2/ } while (<>) { s/([\x00-\x09\x0b-\x15\x7f-\xff])/"<".sprintf("%X",ord($1)).">"/eg; /^[@&+\-\/*]/ or $prev =~ s/\n$/<10>/; print $prev; $prev = $_; } print $prev;