FFI::Library - Perl Access to Dynamically Loaded Libraries
version 1.15
# call function from arbitrary dynamic library use FFI::Library; $lib = FFI::Library->new("mylib"); $fn = $lib->function("fn", "signature"); $ret = $fn->(...); # call function from libc $clib_file = ($^O eq "MSWin32") ? "MSVCRT40.DLL" : "-lc"; $clib = FFI::Library->new($clib_file); $strlen = $clib->function("strlen", "cIp"); $n = $strlen->($my_string);
NOTE: Newer and better maintained FFI modules such as FFI::Platypus provide more functionality and so it is strongly recommend that you use one of them for new projects and even consider migrating to one of them for existing projects.
This module provides access from Perl to functions exported from dynamically linked libraries. Functions are described by signatures, for details of which see the FFI module's documentation.
signatures
my $lib = FFI::Library->new($libname);
Creates an instance of FFI::Library.
FFI::Library
my $address = $lib->address($function_name);
Returns the symbol of the given function. Returns undef if the symbol is not found.
undef
my $sub = $lib->function($function_name, $signature);
Creates a code-reference like object which you can call.
$clib_file = ($^O eq "MSWin32") ? "MSVCRT40.DLL" : "-lc"; $clib = FFI::Library->new($clib_file); $strlen = $clib->function("strlen", "cIp"); $n = $strlen->($my_string);
Please open any support tickets with this project's GitHub repository here:
https://github.com/Perl5-FFI/FFI/issues
Low level interface to ffcall that this module is based on
Portable functions for finding libraries.
Platypus is another FFI interface based on libffi. It has a more extensive feature set, and libffi has a less restrictive license.
Original author: Paul Moore <gustav@morpheus.demon.co.uk>
Current maintainer: Graham Ollis <plicease@cpan.org>
Contributors:
Anatoly Vorobey <avorobey@pobox.com>
Gaal Yahas <gaal@forum2.org>
Mitchell Charity <mcharity@vendian.org>
Reini Urban <<RURBAN@cpan.org>
This software is copyright (c) 2016-2018 by Graham Ollis.
This is free software; you can redistribute it and/or modify it under the same terms as the Perl 5 programming language system itself.
To install FFI, copy and paste the appropriate command in to your terminal.
cpanm
cpanm FFI
CPAN shell
perl -MCPAN -e shell install FFI
For more information on module installation, please visit the detailed CPAN module installation guide.