Hummm... ¿Y no es más sencillo modificar el primer programa? Si el binario_del_programa es capaz de entender un archivo Perl, es quizás porque esté escrito en Perl...
Otro caso: si archivo.pl solo contiene las líneas $FILE... entonces no necesitas expresiones regulares ni nada: sobre escribes el archivo.pl cada vez, y listo.
En otro caso, si archivo.pl contiene más cosas, una forma sencilla de hacerlo sería crear una plantilla así:
Using text Syntax Highlighting
#!/usr/bin/perl
# PLANTILLA
# otras cosas...
#...
ARCHIVOS
# otras cosas que no sabemos
Coloreado en 0.000 segundos, usando
GeSHi 1.0.8.4
Luego, en el programa que modifica archivo.pl, lees la plantilla, generas el código que necesitas, y con la expresión regular cambias 'ARCHIVOS' por el código generado; y el resultado final lo guardas como archivo.pl.