为什么LUA loadstring()在演示站点上不起作用?

时间:2018-10-29 16:15:01

标签: lua

我正在尝试测试LUA loadstring函数。

此示例是从LUA文档中获得的指导:

f = loadstring("i = i + 1")

但是,当我尝试在以下位置运行它时:

https://www.lua.org/cgi-bin/demo

我收到以下错误:

input:1: attempt to call a nil value (global 'loadstring')

2 个答案:

答案 0 :(得分:4)

loadstring在Lua 5.1之前的版本中不可用。您链接的演示正在运行Lua 5.3。您可以通过运行程序print(_VERSION)来证明这一点。

在Lua 5.2中,更高版本的代码应使用load,这是您可以运行的示例程序,该程序从字符串中加载块:

local f = load("return 2 + 2")
print(f())

答案 1 :(得分:0)

这是Lua 5.4,负载在那里。 看...

tdump=[[for k,v in pairs(_G) do print(k,v) end]]
load(tdump)()

由于安全原因,我认为Lua 5.4 CGI的功能有所减少。 看...

tdump=[[for k,v in pairs(_G.io) do print(k,v) end]]
load(tdump)()

...只有:write()