linux社区爱心援助Linux认证系列教程业界动态站务新闻公司招聘建议留言网址大全LPI专题CISCO专题
设为首页
加入收藏
管理团队
JSP  
JAVA  
PERL  
 您的位置:首页 > 开发语言 > perl >
栏目导栏
  php
  JSP
  ASP
  asp.net
  JAVA
  c/c++/c#
  perl
  JavaScript
  Basic
  Delphi
资料搜索
热门文章
·perl入门学习指南
·perl入门教程:Perl 的变量
·Perl文件及目录操作
·perl入门教程:正则表达式
·perl入门教程:Perl的语法与C语
·perl入门教程:Perl概述
·Perl常用系统函数
·perl中传递和存储文件句柄
·perl 学习笔记
·perl入门教程:Perl 程序的属性
·Perl命令行应用介绍
·Perl连接Oracle数据库的方法
·curl+perl的自动MAIL报警程序
·Perl的基本输入输出
·使用 perldoc 找文档
最新文章
·perl 学习笔记
·Perl 特殊变量
·perl Base64码的获取
·perl 父子进程的数据库连接继承
·工作中的实用 perl 脚本
·perl中传递和存储文件句柄
·curl+perl的自动MAIL报警程序
·Perl类包的动态调用
·使用open创建的管道进行父子进
·perl 执行一个系统命令(svn in
·windows平台下根据可执行文件名
·关联数组(hash)
·Perl语言在风险评估的系统基础
·在Perl/CGI中使用模板
·PERL CGI 常见问题
Google
 
Perl类包的动态调用
[ 作者:  加入时间:2007-11-09 10:38:30  来自:Linux联盟收集整理 ]
Java类的动态调用Class.ForName.newInstance()
 
Perl实现:Class::ForName

package Class::ForName;NNGLinux联盟
use strict;NNGLinux联盟
NNGLinux联盟
require Exporter;NNGLinux联盟
our @ISA = qw(Exporter);NNGLinux联盟
our @EXPORT_OK = qw();NNGLinux联盟
our @EXPORT=qw(newInstance);NNGLinux联盟
our %EXPORT_TAGS = (NNGLinux联盟
    ALL => [@EXPORT, @EXPORT_OK],NNGLinux联盟
    );NNGLinux联盟
NNGLinux联盟
sub newInstance{NNGLinux联盟
    my ($ClassName, $Method, $Para)=@_;NNGLinux联盟
    if (!defined($Method) or $Method eq "" ) {NNGLinux联盟
        $Method="new($Para)"NNGLinux联盟
    } else {NNGLinux联盟
        $Method="$Method($Para)"NNGLinux联盟
    }NNGLinux联盟
    my $Object="null";NNGLinux联盟
    eval("use $ClassName;");NNGLinux联盟
    eval('$Object='."$ClassName->$Method");NNGLinux联盟
    return $Object;NNGLinux联盟
}NNGLinux联盟
NNGLinux联盟
1;

例程:

use strict;NNGLinux联盟
use lib "./";NNGLinux联盟
use Class::ForName;NNGLinux联盟
NNGLinux联盟
my $myClass="XML::Simple";NNGLinux联盟
my $Para='ForceArray => 1';NNGLinux联盟
my $myxmlreader;NNGLinux联盟
$myxmlreader=newInstance($myClass,"",$Para);

...

 

Linux联盟收集整理 ,转贴请标明原始链接,如有任何疑问欢迎来本站Linux论坛讨论
评论】【加入收藏夹】【 】【打印】【关闭
※ 相关链接
 ·动态调用DLL函数的方法  (2007-10-30 15:21:08)
 ·在 C# 中动态调用 native dll 的导出函数  (2007-10-29 14:17:32)