Es relativamente sencillo con PostgreSQL. Estudia, por ejemplo, la siguiente consulta SQL:
Using sql Syntax Highlighting
CREATE OR REPLACE FUNCTION ejecutaperl(argumentos) RETURNS SETOF test AS $$
my $script = spi_exec_query("select X from MI_TABLA where X cumple una condicion");
#... más código Perl incrustado;
#... si es necesario pulimos el script ... ;
# y acabamos con:
system("perl $script");
$$ LANGUAGE plperl;
Coloreado en 0.002 segundos, usando
GeSHi 1.0.8.4
Obviamente es sólo un esquema para empezar a trabajar, tienes que definir la consulta real en base a tu estructura de la tabla, la condición, el formato de salida (que puede ser SETOF test o no) y el nombre y tipo de los argumentos opcionales (si los hay). Tienes que buscar la manera de cargar la variable de una manera adecuada y también hay que cargar primero el lenguaje confiable
plperl o su versión insegura (
plperlu) en PostgreSQL. La razón para tener
plperlu es que a veces
plperl no permite hacer cosas por razones de seguridad.
Una vez que la función proporcione el resultado esperado y asumiendo que en tu Linux tienes un Perl instalado y funcional podrás invocar perl desde tu base de datos PostgreSQL simplemente con
Using sql Syntax Highlighting
SELECT ejecutaperl(argumentos);
Coloreado en 0.000 segundos, usando
GeSHi 1.0.8.4
Y eso es todo.
Puedes lanzar un compilador Perl desde muchos programas y lenguajes en realidad, incluido Python, GNU-R, C... o el propio Perl, cualquier cosa que permita una llamada subyacente al sistema.