```{index} single: FFI::Platypus::Function ``` # FFI::Platypus::Function An FFI function object ## VERSION version 2.12 ## SYNOPSIS ```perl 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](../Platypus.md). ## METHODS ### attach ```perl $f->attach($name); $f->attach($name, $prototype); ``` Attaches the function as an xsub (similar to calling attach directly from an [FFI::Platypus](../Platypus.md) instance). You may optionally include a prototype. ### call ```perl 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 ```perl 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 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) Lukas Mai (MAUKE) ## 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.