XS is an interface through which a Perl program can call a C language subroutine. The letters stand for eXternal Subroutine, or xsub, where external means external to Perl, i.e. written in some other language.
It may be desirable for a Perl program to invoke a C subroutine in order to
The Perl interpreter is a C program, so in principle there is no obstacle to calling from Perl to C. However, the XS interface is complex, and using it requires some understanding of the interpreter. The earliest reference on the subject was the perlguts POD, the word guts suggesting the highly technical nature of the material.
Subroutine libraries in Perl are called modules, and modules that contain xsubs are called XS modules. Perl provides a framework for developing, packaging, distributing, and installing modules. To create an XS module, a programmer
h2xs to create an empty module
make
Once an XS module is installed, it can be loaded into a Perl program with a use statement, like an ordinary Perl module. Once the module is loaded, the C subroutines can be called from Perl code, as if they were written in Perl.
XS modules are not without drawbacks
It is also possible to write XS modules that wrap C++ code. Doing so is mostly a matter of wrestling with the module build system. Details on how to do this are given here.
This article is licensed under the GNU Free Documentation License.
It uses material from the
"XS (Perl)".
Home Page • arts • business • computers • games • health • hospitals • home • kids & teens • news • physicians • recreation• reference • regional • science • shopping • society • sports • world