作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
似乎 CPAN 上的一些(很多?)模块部分是使用 XS 在 C 中实现的,如果需要,可以回退到纯 perl 实现。虽然这很聪明,但它显然会损害性能,我想知道它是否会发生,以便我可以解决问题。
有没有一种通用的方法来停止或检测这种类型的回退?
有关此行为的示例,请查看(非常方便)Date::Simple (code snippet)
最佳答案
任何解决方案都必须基于每个模块(因为决定使用哪个实现是由父模块本身做出的,而不是 Perl 中的某种机制)。在您引用的情况下,在 use 语句之后检查 $Date::Simple::NoXs 的值将告诉您是否正在使用 XS。
use Date::Simple;
die "not using XS for Date::Simple\n" if $Date::Simple::NoXs;
use Scalar::Util;
die "not using XS for Scalar::Util\n" unless if @Scalar::Util::EXPORTFAIL;
关于perl - 阻止 Perl XS 模块默默地退回到纯 perl,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3659587/
我是一名优秀的程序员,十分优秀!