while (<PATCH>) {
if (/^+++ ([^ ]*)/) {
$filename = $1;
$s = "";
do {
$patch .= $s;
$s = <PATCH>;
} while (!($s =~ /^---/));
open F, $filename;
$f = join "", <F>;
patch($f, $patch, STYLE => "Unified");
# Записать $f обратно в файл и на этом код "полноценного patch" будет завершен
}
}