V

Size: a a a
V

AS
S
x = {1,2,3}
b = 2
a = load("print x["..b.."]")
a()MT
S
_G. И это и есть твоё глобальное окружение, в ней хранится всё глобальное.S
a2 = {12345}
local var = 2
local tbl = _G["a" .. var] --< вытягиваем из глобального
print(tbl == a2) --> trueS
_G есть переменная _G, которая равна самой _G, хехе.AM
local p = print a = 10 do local _ENV = {_G = _G} a = 20 p(a, _G.a) endAM
глобальная это не всегда _G.S

S
setfenv или чем-то таким.AM
S
package.path (а если сделать копию в его окружении — require всё равно будет смотреть в первоначальную, там запоминается ссылка на таблицу). Разве что свой package.loader написать, и подменять его на момент использования чанка.AM
requireS
YG
D
D