sofh7777 发表于 2017-5-17 10:09:11

简单的perl模块结构

  如果想在perl中使用面向对象编程,就要先熟悉perl的模块。
  模块就相当于是perl中的'类',一个perl的模块文件以.pm为后缀,其内部结构大致如下:

#!/usr/bin/perl
package DynamicTable;
require Exporter;
@ISA = qw(Exporter);
@EXPORT = qw(heng, ha);
sub heng {
my $class = shift;
print "int method heng() type=$class->{'type'}\n";
}
sub ha {
my $class = shift;
print "int method ha() type=$class->{'type'}\n";
}
sub new {
my $class = shift;
my %param = @_;
my $this = {};
$this->{'type'} = $param{'type'};
bless $this;
return $this;
}

1

    @EXPORT 里面存的是需要导出的方法(method)。

  new()方法是整个模块的构造函数,会在创建对象的时候被调用。它可以接受初始化参数,就像c++类中的构造函数一样。
  在上面代码中,你会看到所有方法中的第一句总是 my $class = shift;   这是为什么呢?
  每个方法都会有个默认的参数,就是本对象自己的句柄。
  new()方法可能会将一些初始化参数放入句柄指向的哈希结构中,如:
  $this->{'type'} = $param{'type'};

  要是heng()方法想要使用它,可以这样:  
  my $class = shift;
  print $class->{'type'};
  模块使用方法:
  在一个普通的perl文件中,想要使用这个模块,你只需这样:

#!/usr/bin/perl
use DynamicTable;                    #使用DynamicTable模块  

#创建对象
$q = new DynamicTable( 'type' => 'hostfucker');
#或者用下面语句创建对象,也ok
#$q = DynamicTable->new('type'=>'hostfucker');
#调用heng()方法
$q->heng();
#调用ha()方法
$q->ha();
  
页: [1]
查看完整版本: 简单的perl模块结构