[PerlChina] 求助如何动态加载模块, dynamic load Module
Qiang ( James ) Li
shijialee at gmail.com
Sun Dec 2 21:06:03 PST 2007
rorot wrote:
> 诸位好,
>
> 感谢各位上次指导我的关于HTML::DOM, Mozilla::Mechanize的诸多问题。甚至于
> jzhang提出的Class::DBI模块,我觉得很好用。正用在了目前的模块中。
Class::DBI 是 Perl 里最老的一个 ORM 模块,虽然稳定,但使用 Class::DBI 的
人很多已经转到 DBIx::Class 上了,既然你是刚开始使用 ORM,我推荐你使用
DBIx::Class 或 Rose::DB。
另外,我碰巧要用从网页的 DOM 里提取数据,试了一下 Web::Scraper 发现很好
用。http://search.cpan.org/~miyagawa/Web-Scraper-0.24/lib/Web/Scraper.pm
文档里的例子就能说明它的用途。
>
> 这次我碰到的问题是: 如何在我自己编写的package里,动态加载别的模块?
> 具体是这样的。在我的主模块里是MVC(Module, View, Control)结构,其View输出
> 分至少3种,或HTML, 或XML, 或Console Text. 这三种输出,分别由3个不同的
> View模块实现。
>
程序是运行在 mod_perl 下的么?如果是的话那就没有必要动态加载。即使在
plain cgi 下,多加载一个或两个模块对运行速度到底有多大区别?
常说的一句话:在你没有找到瓶颈的时候,不要做无谓的提速。
动态加载你可以使用 require :
if ( $output_type = 'xml' ) {
eval { require XML::OUTPUT };
die if $@;
print $xml_output;
}
Qiang
More information about the China-pm
mailing list