package main import ( "C" "fmt" "os" ) func main() {} //export Yaph func Yaph() { fmt.Println("Every day I get in the queue") fmt.Println("To get on the bus that takes me to you") } //export Acme func Acme() { go func() { fmt.Println("I guess i'm a closure") fmt.Println (os.Getpid()) }() } #### #!/usr/bin/env perl use strict; use warnings; use FFI::Platypus; use feature qw ( say ); say qq($0 $$); my $ffi = FFI::Platypus->new( api => 1 ); $ffi->lib('./yaph.so'); $ffi->attach(Yaph => []); $ffi->attach(Acme => []); Yaph(); Acme() for 1..3; END { say qq(Too much, Magic Bus!) for 1 .. 3; } __END__ #### ./run.pl 12350 Every day I get in the queue To get on the bus that takes me to you I guess i'm a closure 12350 I guess i'm a closure 12350 Too much, Magic Bus! I guess i'm a closure Too much, Magic Bus! 12350 Too much, Magic Bus!