我正在尝试学习如何使用 Lua 模块。我一直在阅读以下手册:
http://lua-users.org/wiki/ModulesTutorial
不幸的是,我什至无法让第一个示例工作!我做了以下事情:
创建了一个“mymodule.lua”文件,如下所示:
local mymodule = {}
function mymodule.foo()
print("Hello World!")
end
return mymodule
然后从命令行,在 mymodule.lua 文件所在的文件夹中,我尝试执行以下操作:
mymodule = require "mymodule"
但我收到以下错误消息:
myserver:/usr/share/x/research/# mymodule = require "mymodule"
-ash: mymodule: not found
这有效:
myserver:/usr/share/x/research/# local mymodule = require "mymodule"
但是当我尝试运行 foo() 方法时,它会失败,如下所示:
myserver:/usr/share/x/research/# mymodule.foo()
-ash: syntax error: bad function name
myserver:/usr/share/x/research/#
我想这是有道理的,因为我在命令行上将 mymodule 声明为本地而不是全局。
我想我的问题是为什么我不能在命令行上全局声明模块。
手册说我应该从“交互式解释器”运行它。我在 linux 中使用标准命令行/终端窗口……这可能是问题吗?我通常必须在所有 lua 命令前加上“lua”。
任何建议,将不胜感激。