近日,因为红帽RHEL中附带的Perl语言编译程序存在严重问题,导致了了大量的开发人员的非议。这个问题同样存在与红帽领导的Fedora项目中,另外,以RHEL源码为基础的CnetOS中也存在着这样的问题。这个问题的严重性在于:某个相同的程序,在红帽RHEL系统Linux操作系统上的执行速度比其他Linux操作系统要慢100倍(对,你没有看错,就是100倍)。一位红帽的工程师已经表示,在下个版本的RHEL中将会修复这个bug,也许是RHEL5.3吧,但是目前还不清楚这个bug的修复补丁何时能够推出。
大家都知道,Perl是大家都很熟悉的非常流行的开源脚本语言之一,在Web开发者和系统管理员中已经流行了很久,在Internet刚刚开始的时候,Perl就已经大展身手,Perl特别擅长文本处理、网络编程和关系型数据库等等,即使在现在也有很多大型公司使用Perl来处理一些非常基础,但是非常关键的后台业务操作,比如Amazon、高盛银行等等。
所以说,现在爆出最新版本的RHEL居然有附带着这么个版本的Perl,实在是令人匪夷所思。最初这个bug提交出现在红帽的Bug跟踪系统中的时候是在 2007年11月,但是只是发现在RHEL5中的某些版本的Perl运行程序出现混乱,只是个例,而没有发现某个版本在某种情况下的普遍现象。当时的情况是,相同的程序,在FreeBSD、甚至RHEL4上,相同版本的Perl解释器运行的速度要比RHEL5上快了差不多100倍。
根据这个bug发现者的报告称,这个问题在使用Perl语言的bless函数,同时结合程序内部指令overload的时候才会出现。但是这中结合使用情况在很多的公用Perl中出现。这就以为着,即使您所写的代码中没有结合适用bless和overload,只要你所引用的模块中包含了他们,那么你的程序就不幸了。