FFI::Raw - Perl bindings to the portable FFI library (libffi)
version 0.32
use FFI::Raw; my $cos = FFI::Raw -> new( 'libm.so', 'cos', FFI::Raw::double, # return value FFI::Raw::double # arg #1 ); say $cos -> call(2.0);
FFI::Raw provides a low-level foreign function interface (FFI) for Perl based on libffi. In essence, it can access and call functions exported by shared libraries without the need to write C/XS code.
Dynamic symbols can be automatically resolved at runtime so that the only information needed to use FFI::Raw is the name (or path) of the target library, the name of the function to call and its signature (though it is also possible to pass a function pointer obtained, for example, using DynaLoader).
Note that this module has nothing to do with FFI.
Create a new FFI::Raw object. It loads $library, finds the function $function with return type $return_type and creates a calling interface.
FFI::Raw
$library
$function
$return_type
If $library is undef then the function is searched in the main program.
undef
This method also takes a variable number of types, representing the arguments of the wanted function.
Create a new FFI::Raw object from the $function_ptr function pointer.
$function_ptr
Execute the FFI::Raw function. This methoed also takes a variable number of arguments, which are passed to the called function. The argument types must match the types passed to new (or new_from_ptr).
new
new_from_ptr
The FFI::Raw object can be used as a CODE reference as well. Dereferencing the object will work just like call():
$cos -> call(2.0); # normal call() call $cos -> (2.0); # dereference as CODE ref
This works because FFI::Raw overloads the &{} operator.
&{}
Return a code reference of a given FFI::Raw.
Create a FFI::Raw::MemPtr. This is a shortcut for FFI::Raw::MemPtr->new(...).
FFI::Raw::MemPtr->new(...)
Create a FFI::Raw::Callback. This is a shortcut for FFI::Raw::Callback->new(...).
FFI::Raw::Callback->new(...)
Return a FFI::Raw void type.
Return a FFI::Raw integer type.
Return a FFI::Raw unsigned integer type.
Return a FFI::Raw short integer type.
Return a FFI::Raw unsigned short integer type.
Return a FFI::Raw long integer type.
Return a FFI::Raw unsigned long integer type.
Return a FFI::Raw 64 bit integer type. This requires Math::Int64 to work.
Return a FFI::Raw unsigned 64 bit integer type. This requires Math::Int64 to work.
Return a FFI::Raw char type.
Return a FFI::Raw unsigned char type.
Return a FFI::Raw float type.
Return a FFI::Raw double type.
Return a FFI::Raw string type.
Return a FFI::Raw pointer type.
Alessandro Ghedini <alexbio@cpan.org>
FFI, Ctypes
Copyright 2012 Alessandro Ghedini.
This program is free software; you can redistribute it and/or modify it under the terms of either: the GNU General Public License as published by the Free Software Foundation; or the Artistic License.
See http://dev.perl.org/licenses/ for more information.
To install FFI::Raw, copy and paste the appropriate command in to your terminal.
cpanm
cpanm FFI::Raw
CPAN shell
perl -MCPAN -e shell install FFI::Raw
For more information on module installation, please visit the detailed CPAN module installation guide.