local file = 'conf.lua'
local func, err = loadfile(file)
if err then error(err) end
local succes, result = pcall(setfenv(func, {}))
if not succes then error(result) end
if type(result) ~= 'table' then
error(file .. ' can only return a table')
end
for k, v in pairs(result) do print(k, v) end
示例conf.lua:
-- VIRUS = 'я ничего не сделаю'
-- _G.VIRUS = 'я вызову ошибку'
-- print 'я тоже вызову ошибку'
A = 2+2 -- я НЕ глобальная переменная
return {
a = A, -- так можно
b = '456',
c = function ()
print 'я под карантином и не работаю,\
пока мне не установят окружение,\
вот так: setfenv(result.c, _G)'
end
}
示例
conf.lua: