syscall - execute an arbitrary system call
syscall
LIST
Calls the system call specified as the first element of the list, passing
the remaining elements as arguments to the system call. If unimplemented,
produces a fatal error. The arguments are interpreted as follows: if a
given argument is numeric, the argument is passed as an int. If not, the
pointer to the string value is passed. You are responsible to make sure a
string is pre-extended long enough to receive any result that might be
written into a string. If your integer arguments are not literals and have
never been interpreted in a numeric context, you may need to add 0 to them
to force them to look like numbers.
require 'syscall.ph'; # may need to run h2ph
syscall(&SYS_write, fileno(STDOUT), "hi there\n", 9);
Note that Perl supports passing of up to only 14 arguments to your system
call, which in practice should usually suffice.