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!