exception error: undefined function erl_eval:exprs/1
时间: 2024-03-17 10:43:08 浏览: 59
非常抱歉,我之前的代码有误。在Erlang 23.0及更高版本中,erl_eval模块不再包含exprs函数。因此,我们需要使用Erlang的built-in函数binary_to_term来解析二进制文件。以下是更新后的代码:
```
%% 定义模块名和导出的函数
-module(redis_conn).
-export([connect/0]).
%% 定义连接函数
connect() ->
%% 读取redis配置文件
{ok, Binary} = file:read_file("redis.config"),
%% 将二进制文件转换为Erlang表达式
Config = binary_to_term(Binary),
%% 获取Redis服务器的地址和端口
Host = proplists:get_value(redis_host, Config, "localhost"),
Port = proplists:get_value(redis_port, Config, 6379),
%% 连接到Redis服务器
{ok, Conn} = eredis:start_link([{host, Host}, {port, Port}]),
%% 输出连接信息
io:format("Connected to Redis server at ~s:~p~n", [Host, Port]),
%% 返回连接进程的PID
Conn.
```
现在,代码将使用binary_to_term函数解析二进制文件,并返回对应的Erlang表达式。请注意,此函数仅适用于二进制文件,如果您的文件不是二进制文件,请改用file:consult函数。
阅读全文