Perl 面向对象学习笔记
Perl 是一门具有强大面向对象编程(OOP)机制的语言。下面是本人对于Perl面向对象编程的学习笔记,希望对您的Perl OOP学习有所帮助!
1. 类
在Perl中,可以使用Class::Struct
模块创建类。具体实现如下:
Copy Codeuse Class::Struct;
struct Person => {
first_name => '$',
last_name => '$',
age => '$',
};
my $person = Person->new(
first_name => 'Tom',
last_name => 'Smith',
age => 35,
);
上述代码创建了一个名为Person的类,其中包含了first_name、last_name和age三个属性。$person
是该类的一个对象。
2. 方法
在Perl中,方法使用关键字sub
定义。在方法中,可以使用变量$self
来引用对象。
Copy Codeuse Class::Struct;
struct Person => {
first_name => '$',
last_name => '$',
age => '$',
};
sub full_name {
my $self = shift;
return $self->first_name . ' ' . $self->last_name;
}
my $person = Person->new(
first_name => 'Tom',
last_name => 'Smith',
age => 35,
);
print $person->full_name . "\n";
上述代码创建了一个名为full_name()
的方法,用于获取$person
对象的全名。使用$person->full_name()
即可调用该方法。
3. 继承
在Perl中,可以使用use base
语句实现继承。下面是一个例子:
Copy Codepackage Animal;
sub new {
my ($class, $name) = @_;
my $self = {
Name => $name,
};
bless $self, $class;
return $self;
}
sub speak {
my $class = shift;
print "A $class goes ", $class->sound, "!\n";
}
package Cat;
use base qw(Animal);
sub sound { 'meow' }
package Dog;
use base qw(Animal);
sub sound { 'woof' }
my $cat = Cat->new('Fluffy');
my $dog = Dog->new('Fido');
$cat->speak; # 输出 "A Cat goes meow!"
$dog->speak; # 输出 "A Dog goes woof!"
上述代码定义了一个名为Animal的类,其中包含了名为new和speak的方法。Cat和Dog类分别继承了Animal类,并添加了sound方法。
结语
以上是本人对于Perl面向对象编程的学习笔记,希望对您有所帮助。除此之外,您可以参考Perl官方文档,更深入地了解Perl的OOP机制。