小编xGh*_*ost的帖子

与孩子一起投下的Perl Moose父母班

package Point;
use Moose;

has 'x' => (isa => 'Int', is => 'rw');
has 'y' => (isa => 'Int', is => 'rw');

package Point3D;
use Moose;

extends 'Point';

has 'z' => (isa => 'Int', is => 'rw');

package main;

use Data::Dumper;

my $point1 = Point->new(x => 5, y => 7);
my $point3d = Point3D->new(z => -5);

$point3d = $point1;
print Dumper($point3d);
Run Code Online (Sandbox Code Playgroud)

是否可以将父类转换为子类,如c ++?在我的考试中,$ point3d现在是一个Point而不是Point3D包括Point.

oop perl moose

4
推荐指数
1
解决办法
1120
查看次数

实施要求其他角色不起作用?

我的第一个角色是以下角色:

package AccBack::RTransaction;

use strict;
use warnings;

use Moose::Role;
use MooseX::Method::Signatures;

requires "_log";
requires "_config";
Run Code Online (Sandbox Code Playgroud)

我实现第一个角色的第二个角色是以下角色:

package AccBack::RAccounting;

use AccBack::RTransaction;

requires "_log";

has "_config"            => (
    isa         => "Accounting::Config",
    is          => "ro",
    lazy        => 1,
    default     => sub { return Accounting::Config->new(); }
);

has "fibu"              => (
    isa         => "Maybe[Accounting::Fibu]",
    is          => "rw",
    writer      => "setFibu",
    reader      => "getFibu",
    default     => undef,
);

with "AccBack::RTransaction";
Run Code Online (Sandbox Code Playgroud)

我的基类如下:

package AccBack::Membership;

use AccBack::RAccounting;

has "_log"              => (
    isa         => "Log::Log4perl::Logger",
    is          => "ro", …
Run Code Online (Sandbox Code Playgroud)

perl moose role

2
推荐指数
1
解决办法
75
查看次数

标签 统计

moose ×2

perl ×2

oop ×1

role ×1