你好世界在perl中的OOP示例?
发布时间:2020-12-15 23:31:48 所属栏目:大数据 来源:网络整理
导读:我正在读一本perl书,但只看过sub关键字的函数示例. 有定义和使用我自己的类的例子吗? 如何将下面的PHP重写为perl? class name { function meth() { echo 'Hello World'; }}$inst = new name;$inst-meth(); 解决方法 basic-perl方式是: 在’Foo.pm’文件中
我正在读一本perl书,但只看过sub关键字的函数示例.
有定义和使用我自己的类的例子吗? 如何将下面的PHP重写为perl? class name { function meth() { echo 'Hello World'; } } $inst = new name; $inst->meth(); 解决方法
basic-perl方式是:
在’Foo.pm’文件中: use strict; use warnings; package Foo; sub new { my $class = shift; my $self = bless {},$class; my %args = @_; $self->{_message} = $args{message}; # do something with arguments to new() return $self; } sub message { my $self = shift; return $self->{_message}; } sub hello { my $self = shift; print $self->message(),"n"; } 1; 在你的脚本中: use Foo; my $foo = Foo->new(message => "Hello world"); $foo->hello(); 你可能更喜欢使用Moose,在这种情况下文件’Foo.pm’是: package Foo; use Moose; has message => (is => 'rw',isa => 'Str'); sub hello { my $self = shift; print $self->message,"n"; } 1; 因为Moose为您制作了所有的访问器.你的主文件是完全一样的…… 或者你可以使用Moose扩展来使一切变得更漂亮,在这种情况下,Foo.pm变为: package Foo; use Moose; use MooseX::Method::Signatures; has message => (is => 'rw',isa => 'Str'); method hello() { print $self->message,"n"; } 1; (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |