1-- make global variables readonly 2 3local f=function (t,i) error("cannot redefine global variable `"..i.."'",2) end 4local g={} 5local G=getfenv() 6setmetatable(g,{__index=G,__newindex=f}) 7setfenv(1,g) 8 9-- an example 10rawset(g,"x",3) 11x=2 12y=1 -- cannot redefine `y' 13