阻止Perl XS模块无声地回退到纯perl
发布时间:2020-12-15 22:02:56 所属栏目:大数据 来源:网络整理
导读:似乎CPAN上的一些(很多?)模块部分使用XS在C中实现,并且如果需要可以回退到纯perl实现.虽然这很聪明,但它显然会损害性能,我想知道它发生了所以我可以解决问题. 是否有停止或检测此类后备的一般方法? 有关此行为的示例,请查看(非常方便)Date::Simple(code sn
似乎CPAN上的一些(很多?)模块部分使用XS在C中实现,并且如果需要可以回退到纯perl实现.虽然这很聪明,但它显然会损害性能,我想知道它发生了所以我可以解决问题.
是否有停止或检测此类后备的一般方法? 有关此行为的示例,请查看(非常方便)Date::Simple(code snippet) 解决方法
任何解决方案都必须基于每个模块(因为决定使用哪个实现由父模块本身,而不是Perl中的某些机制).在您引用的情况下,在use语句之后检查$Date :: Simple :: NoXs的值将告诉您是否正在使用XS.
use Date::Simple; die "not using XS for Date::Simplen" if $Date::Simple::NoXs; 例如,要检测Scalar :: Util是否使用XS或纯Perl版本,您必须检查是否存在双变量函数. use Scalar::Util; die "not using XS for Scalar::Utiln" unless if @Scalar::Util::EXPORTFAIL; (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |