require("import") -- the import fn import("array_member") -- import lib am = array_member -- catch "undefined" global variables local env = _ENV -- Lua 5.2 if not env then env = getfenv () end -- Lua 5.1 setmetatable(env, {__index=function (t,i) error("undefined global variable `"..i.."'",2) end}) assert(am.get_value(am.global_data,0) == 0) assert(am.get_value(am.global_data,7) == 7) foo = am.Foo() foo.data = am.global_data assert(am.get_value(foo.data,0) == 0) for i = 0, 7 do assert(am.get_value(foo.data,i) == am.get_value(am.global_data,i)) end for i = 0, 7 do am.set_value(am.global_data,i,-i) end am.global_data = foo.data for i = 0, 7 do assert(am.get_value(foo.data,i) == am.get_value(am.global_data,i)) end