简单的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();
  

 

你可能感兴趣的:(编程,C++,c,C#,perl)