首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > perl python >

Perl 怎么自动加载模块的

2012-02-29 
Perl 如何自动加载模块的?本人学习Perl没有多久,最近要完成一个功能,需要从XML文件里读取配置信息,配置信

Perl 如何自动加载模块的?
本人学习Perl   没有多久,最近要完成一个功能,需要从   XML   文件里读取配置信息,配置信息里保存的是某个自己写的模块,比如:

<action   name= "init "   class= "MyApp::Action::Init "/>

这里的   MyApp::Action::Init   就是我的   Init.pm   的完整包路径,我现在需要在我的一个Perl程序里使用这个模块。

比如我用如下方法得到了我的包路径

my   $action   =   $xmlref-> getAction( 'action.xml ');
print   $action   #   得到一个保存了字符串   MyApp::Action::Init   的变量

我现在希望通过得到的这个完整路径得到一个这个模块的对象

$myaction   =   new   $action();

这样的方法在

use   MyApp::Action::Init;

的情况下是可以成功的,但是这里   MyApp::Action::Init   是通过动态读取   xml   文件得到的,每次可能都不一样,我不能直接采用硬编码的方式写在代码中,于是我想采用

use   $action;

这样的方式,结果就出错了

请问大家这样的问题怎么解决呢   ?   谢谢   !!!

[解决办法]
$modname = "MyApp::Action::Init ";
$modname =~ s/::/\//g;

require "$basedir/$modname.pm ";
[解决办法]
或者直接 require $action;

热点排行