XS is means of exposing C functions to Perl programs. This can be quite trivial, but you can also include C code to handle more complex types or to provide a more Perlish interface. A simple XS module:
#define PERL_NO_GET_CONTEXT
#include "EXTERN.h"
#include "perl.h"
#include "XSUB.h"
#include <math.h>
MODULE = MyModule PACKAGE = MyModule
double
sin(double x)
package MyModule;
use strict;
use warnings;
use Exporter qw( import );
use DynaLoader qw( );
our @EXPORT_OK = qw( sin );
bootstrap __PACKAGE__;
1;
That said, I suspect Chromatic was referring to the Perl API rather than XS. (And even then, probably to a subset of it.) The Perl API allows you to create Perl variables and manipulate them. You also have access to Perl's stack, and you can call Perl subs. (XS code can use the Perl API.)