use Test::More; BEGIN { plan tests => 5 }; use Inline Lua => 'DATA', Undef => sub { return shift }; ok(1); ok(fib()->(1) == 1, "fib(1)"); ok(fib()->(11) == 144, "fib(11)"); ok(simple_closure(42) == 42, "simple closure"); my @a = return_list(sub { return 1, 2, 3 }); is_deeply(\@a, [1,2,3], "closure returns list"); __END__ __Lua__ function fib () --return a Fibonacci number generator local f f = function (n) if n < 2 then return 1 end return f(n-2) + f(n-1) end return f end function simple_closure (a, f) return f(a) end function return_list (f) return f() end