问题说明
我有一些我已经继承的代码,而且我正在尝试调试。它是一个用lua编写的后端Web应用程序。 系统现在失败,并显示以下错误:
398:尝试呼叫全球'要求' (零值)
代码
第398行是您在下面看到的必需声明..
getstatus = function()
require("processinfo")
local value,errtxt=processinfo.package_version(packagename)
etc...
到目前为止我尝试过的事情:
我尝试过测试以确保它所寻找的软件包/模块存在。确实如此。它在我的lua lib文件夹中
test-dev:/ usr / share#find / -name processinfo *
/usr/share/lua/5.1/processinfo.lua
我还启动了lua命令行并尝试包含该模块,如下所示:
test-dev:/ usr / share #lua Lua 5.1.5版权所有(C)1994-2012 Lua.org,PUC-Rio
需要(" processinfo&#34)
它看起来很开心,没有错误信息。
最后,我尝试将require语句从第398行移到文件的顶部,其余的include语句都是这样的......就像这样:
模块(...,package.seeall) posix = require(" posix") utils = require(" utils") processinfo = require(" processinfo")
当我这样做时,关于require语句的错误消息消失了,但我收到了关于我调用的字符串函数的错误。错误消息是:
139: attempt to index global 'string' (a nil value)
第139行是while循环的开头,如下所示:
while string.find(result, "%$[%w_]+") do
-- do something
end
其他信息