Подходяще модифицированная версия моего ответа на оригинальный вопрос :
perl -0777 -p -i -e 's/^/<?php/g unless m/^<\?php/' testfile
Выполнение этой команды -i.bak
вместо вместо -i
сохранит резервную копию исходных файлов с расширением .bak.
Редактировать: Обновлено соответствие с m/<?php/
до, m/^<\?php/
чтобы оно совпадало только с началом файла, и чтобы экранировать ?
символ.