<分区>
Possible Duplicate:
Why make global Lua functions local?
在社区的许多 lua 脚本中,我看到类似向脚本添加模块的内容:
local module = require("module")
但是根据lua-manual ,这不是加载模块的方式。模块本身在里面有它们的模块名称,所以
require("module")
就足以使用这样的模块:module.myfunction()。第一个带有本地定义的示例只是将“true”写入 module-var - 表示模块已成功加载。
奇怪的是,我在网络上到处都看到这种加载“local module = require("module")”。由于这个错误,我无法使用来自 lua 社区的大多数脚本。我也想知道为什么我在网上还没有发现任何关于这个的问题。
接下来的事情是,实际加载模块有时也会导致奇怪的错误。例如:我有一个带有
的脚本require("purexml.lua")
比我得到这个错误:
no field package.preload['purexml.lua']
no file './purexml/lua.lua'
no file '/usr/local/share/lua/5.1/purexml/lua.lua'
no file '/usr/local/share/lua/5.1/purexml/lua/init.lua'
no file '/usr/local/lib/lua/5.1/purexml/lua.lua'
no file '/usr/local/lib/lua/5.1/purexml/lua/init.lua'
no file './purexml/lua.so'
no file '/usr/local/lib/lua/5.1/purexml/lua.so'
no file '/usr/local/lib/lua/5.1/loadall.so'
no file './purexml.so'
no file '/usr/local/lib/lua/5.1/purexml.so'
no file '/usr/local/lib/lua/5.1/loadall.so'
但这样做效果很好:
require("purexml")
我是否遗漏了一些非常明显的东西?顺便说下我用的是Lua 5.1.4...