NAME

FFI::Platypus::Function - An FFI function object

VERSION

version 2.04

SYNOPSIS

use FFI::Platypus 2.00;

# call directly
my $ffi = FFI::Platypus->new( api => 2 );
my $f = $ffi->function(puts => ['string'] => 'int');
$f->call("hello there");

# attach as xsub and call (faster for repeated calls)
$f->attach('puts');
puts('hello there');

DESCRIPTION

This class represents an unattached platypus function. For more context and better examples see FFI::Platypus.

METHODS

attach

$f->attach($name);
$f->attach($name, $prototype);

Attaches the function as an xsub (similar to calling attach directly from an FFI::Platypus instance). You may optionally include a prototype.

call

my $ret = $f->call(@arguments);
my $ret = $f->(@arguments);

Calls the function and returns the result. You can also use the function object like a code reference.

sub_ref

my $code = $f->sub_ref;

Returns an anonymous code reference. This will usually be faster than using the call method above.

AUTHOR

Author: Graham Ollis <plicease@cpan.org>

Contributors:

Bakkiaraj Murugesan (bakkiaraj)

Dylan Cali (calid)

pipcet

Zaki Mughal (zmughal)

Fitz Elliott (felliott)

Vickenty Fesunov (vyf)

Gregor Herrmann (gregoa)

Shlomi Fish (shlomif)

Damyan Ivanov

Ilya Pavlov (Ilya33)

Petr Písař (ppisar)

Mohammad S Anwar (MANWAR)

Håkon Hægland (hakonhagland, HAKONH)

Meredith (merrilymeredith, MHOWARD)

Diab Jerius (DJERIUS)

Eric Brine (IKEGAMI)

szTheory

José Joaquín Atria (JJATRIA)

Pete Houston (openstrike, HOUSTON)

COPYRIGHT AND LICENSE

This software is copyright (c) 2015-2022 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.