XS (Perla)


XS es una interfaz de función externa de Perl a través de la cual un programa puede llamar a una subrutina C o C++ . XS o xsub es una abreviatura de "subrutina externa", donde externo se refiere a lenguajes de programación externos a Perl.

XS también se refiere a un lenguaje de unión para especificar interfaces de llamada que admitan dichas interfaces (ver más abajo).

Las bibliotecas de subrutinas en Perl se llaman módulos , y los módulos que contienen xsubs se llaman módulos XS . Perl proporciona un marco para desarrollar, empaquetar, distribuir e instalar módulos.

Puede ser deseable que un programa Perl invoque una subrutina C para manejar tareas muy intensivas de CPU o memoria , para interactuar con hardware o instalaciones de sistema de bajo nivel, o para hacer uso de bibliotecas de subrutinas C existentes.

El intérprete de Perl es un programa C, por lo que en principio no hay ningún obstáculo para llamar de Perl a C. Sin embargo, la interfaz XS es ​​compleja [ ¿por qué? ] y altamente técnico, y su uso requiere cierta comprensión del intérprete. La primera referencia sobre el tema fue el perlguts POD .

Es posible escribir módulos XS que envuelvan código C++ . Hacerlo es principalmente una cuestión de configurar el sistema de construcción del módulo . [1]