2010-06-26 29 views
2

这可能是非常基本的东西,但我的Erlang安装顽固地拒绝了我对re moduleerror:undef的呼叫。它接受regexp package,但是,我想它是一个版本问题。Erlang正则表达式与重新加载问题

我正在运行v。5.6.2和-import(re, [...]).在我的文件顶部,是否还有其他可能遗漏的陷阱?我搜索了一段时间,但找不到描述所需最低版本的页面。

在相关说明中,由于我对Erlang及其工具/社区/开发环境仍然非常新鲜,如果您对经常访问的站点有任何建议,或者更改开发周期的工具,请告诉我。

谢谢!

编辑:如果你想看到一些代码:

Erlang (BEAM) emulator version 5.6.2 [source] [smp:2] [async-threads:0] [kernel-poll:false] 

Eshell V5.6.2 (abort with ^G) 
1> re:compile("paul"). 
** exception error: undefined function re:compile/1 

2> regexp:match("paul","au"). 
{match,2,2} 

在我Eunit测试:

::error:undef 
    in function re:compile/1 
    called as compile("\\s+") 

回答

3

您的Erlang安装非常旧。这可能是R12B发布前的一个版本。目前最稳定的版本是R13B04,而R14现在处于测试阶段。

+1

永远的版本实际上打印出壳体顶部的Erlang版本号。不过,你的旧版本并没有这样做。 :-) – 2010-06-26 20:10:03

+1

'erlang:system_info(otp_release)'给你主要版本(例如'R12B')。不确定你是否可以获得次要版本...... – legoscia 2010-06-28 10:00:04

0

首先尝试用Erlang shell中运行你的正则表达式的代码,看看你得到的同样的错误。 也许发布实际的代码会有所帮助。

+0

发表,谢谢。 – 2010-06-26 15:27:20