我似乎不完全理解 -on_load 指令是如何工作的。在我编写的一个模块中,我有一个函数来初始化一个 ets 表并用一些数据填充它。此函数在显式调用时正常工作。但是:我认为如果在加载模块时“自动”填充 ets 表会很好。但这似乎不起作用,因为ets:info(filesig)
在加载模块后告诉我“未定义”。相关代码如下所示:
...
-on_load(init/0),
init() ->
% load filesig database into ETS
{_, Signatures} = file:consult("path to a file"),
ets:new(filesig, [set, protected, named_table]),
ets:insert(filesig, Signatures),
ok.
...
我已经在 erlang shell 中对其进行了测试。对我有什么提示,我做错了什么?