En efecto, esa es la idea.
Lo que sí podemos es aprovecharnos de una característica muy extraña, en el momento del open(), que es que si le pasamos un gestor de archivo que coincida con el nombre de una variable, abrirá el archivo cuyo nombre esté en esa variable. Por ejemplo:
Using perl Syntax Highlighting
our $ARCHIVO = 'texto.txt';
...
open ARCHIVO; # abre 'texto.txt' en modo lectura
Coloreado en 0.001 segundos, usando
GeSHi 1.0.8.4
Entonces, si $0 contiene el nombre del programa actual, podemos hacer
Using perl Syntax Highlighting
#!/usr/bin/env perl
open+0;print<0>
Coloreado en 0.002 segundos, usando
GeSHi 1.0.8.4
En cuanto a módulos, hay uno especializado en hacer esto:
Quine. Su nombre viene de que precisamente
se llaman así a los programas que hacen esa tarea.
Un ejemplo:
Using perl Syntax Highlighting
#!/usr/bin/env perl
use Quine;
1;
Coloreado en 0.001 segundos, usando
GeSHi 1.0.8.4