2011年4月14日星期四

Re: [PerlChina] 在Moose中,这种情况handler要如何写才正确?

Hi,

此法不错。谢谢!

/Heng

于 2011年04月14日 12:18, Fayland Lam 写道:
#!/usr/bin/perl

package C;

use Moose;

sub XXX { 'XXX' };

package B;

use Moose;

has 'session' => (
    is  => 'ro',
    isa => 'C',
    default => sub { C->new },
    handles => ['XXX']
);

package A;

use Moose;

has 'req' => (
    is  => 'ro',
    isa => 'B',
    default => sub { B->new },
    handles => ['XXX']
);


package main;

my $a = A->new;

print '1 ' . $a->XXX . "\n";
print '2 ' . $a->req->session->XXX . "\n";

差不多就这个样子

On 2011/4/14 11:59, Beckheng Lam wrote:
可以,有个叫做delegate的概念能这样做。

我的目的是想简化一下代码而已。

于 2011年04月14日 11:00, cnhack TNT 写道:
Moose 正在学习中,不过,Moose 可以实现你所需要的这种功能么?

如果要多次调用 XXX(),直接:

$session = $self->req()->session();
$session->XXX();

这样?

2011/4/14 Beckheng Lam <bi.ken.lam@gmail.com>
Hi,

例如我有个Class,带了一个req属性。可以使 用$self->req()->session()->XXX() 的方法。
如何在handler中写明,就可以直接$self->XXX()而无 需$self->req()->session()->XXX()或 者$self->session()->XXX()这 样?

谢谢!

--
诸法从缘起,如来说是因。
彼法因缘尽,是大沙门说。

--

--

--  诸法从缘起,如来说是因。 彼法因缘尽,是大沙门说。

--  Fayland Lam // http://www.fayland.org/


--  诸法从缘起,如来说是因。 彼法因缘尽,是大沙门说。

没有评论: