lua-users home
lua-l archive

Re: 5.2 and 5.1

[Date Prev][Date Next][Thread Prev][Thread Next] [Date Index] [Thread Index]


On 15 April 2013 06:48, Philipp Janda <siffiejoe@gmx.net> wrote:
> Am 11.04.2013 21:58 schröbte Petite Abeille:
>
>>
>> On Apr 11, 2013, at 9:39 PM, Philipp Janda <siffiejoe@gmx.net> wrote:
>>
>>> which sets _ENV directly
>>
>>
>> Out of curiosity, what issue would that entail from your perspective?
>
> It limits you to Lua 5.2.
Does it?
-- PA_module.lua ----------
function module( aName, ... )
 local aModule = package.loaded[ assert( aName ) ]
 if type( aModule ) ~= 'table' then
 aModule = {}
 aModule._M = aModule
 aModule._NAME = aName
 aModule._PACKAGE = aName:sub( 1, aName:len() - (
aName:reverse():find( '.', 1, true ) or 0 ) )
 package.loaded[ aName ] = aModule
 for anIndex = 1, select( '#', ... ) do
 select( anIndex, ... )( aModule )
 end
 end
 return aModule
end
--------------------
-- mymod.lua ----------
local print = print
local module = module
local _ENV = module("mymod")
function blo()
 print("I'm Blo!")
end
local _ENV = module("argh")
function groo()
 print("Grooooo")
end
--------------------
-- main.lua ----------
local mymod = require("mymod")
local argh = require("argh")
mymod.blo()
argh.uff()
assert(not pcall(argh.blo))
--------------------
]/Programs/Lua/5.2.0/bin/lua -lPA_module main.lua
I'm Blo!
Uff
]/Programs/Lua/5.1.5/bin/lua main.lua
I'm Blo!
Uff
-- Hisham
http://hisham.hm/

AltStyle によって変換されたページ (->オリジナル) /