Chinaunix首页 | 论坛 | 博客
  • 博客访问: 221845
  • 博文数量: 36
  • 博客积分: 1188
  • 博客等级: 军士长
  • 技术积分: 802
  • 用 户 组: 普通用户
  • 注册时间: 2010-04-08 21:45
文章分类

全部博文(36)

文章存档

2020年(1)

2017年(2)

2015年(1)

2014年(1)

2013年(1)

2012年(3)

2011年(27)

分类: WINDOWS

2011-03-22 12:19:08

moose handles
  1. package Person;
  2. use Moose;

  3. has name => (is => 'rw');
  4. has age => (is => 'rw');


  5. package Manager;
  6. use Moose;

  7. has name => (
  8.     is => 'rw',
  9.     isa => 'Str',
  10.     default => 'Bob'
  11. );

  12. has staff => (
  13.     is => 'ro',
  14.     isa => 'ArrayRef',
  15.     lazy => 1,
  16.     default => sub { [qw(Bob Alice Tim)] },
  17. );

  18. package Employee;
  19. use Moose;
  20. extends qw(Person);

  21. has manager => (
  22.     is => 'ro',
  23.     isa => 'Manager',
  24.     handles => {
  25.         manager_name => 'name',
  26.         coworkers => 'staff',
  27.     }
  28. );

  29. package main;
  30. my $emp=Employee->new(manager =>Manager->new());
  31. print $emp->manager_name,"\n";
  32. print $emp->manager->name,"\n";
  33. print $emp->coworkers->[1],"\n";
  34. print $emp->manager->staff->[2],"\n";
  35. print join('-',@{$emp->coworkers}),"\n";
阅读(1376) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~