Commit | Line | Data |
---|---|---|
204e6232 BF |
1 | #!./perl |
2 | ||
3 | use strict; | |
4 | use warnings; | |
5 | use utf8; | |
6 | use open qw( :utf8 :std ); | |
7 | require q(./test.pl); plan(tests => 1); | |
8 | ||
9 | ||
10 | =pod | |
11 | ||
f298f061 SP |
12 | =encoding UTF-8 |
13 | ||
204e6232 BF |
14 | example taken from: L<http://www.opendylan.org/books/drm/Method_Dispatch> |
15 | ||
16 | 옵젳Ṯ | |
17 | ^ | |
18 | | | |
19 | ᓕᵮꡠFᚖᶭ | |
20 | ^ ^ | |
21 | / \ | |
22 | SㄣチenŦ 빞엗ᱞ | |
23 | ^ ^ | |
24 | | | | |
25 | ᕟ텔li겐ț Hʉ만ӫ읻 | |
26 | ^ ^ | |
27 | \ / | |
28 | ቩᓪ찬 | |
29 | ||
30 | define class <SㄣチenŦ> (<life-form>) end class; | |
31 | define class <빞엗ᱞ> (<life-form>) end class; | |
32 | define class <ᕟ텔li겐ț> (<SㄣチenŦ>) end class; | |
33 | define class <Hʉ만ӫ읻> (<빞엗ᱞ>) end class; | |
34 | define class <ቩᓪ찬> (<ᕟ텔li겐ț>, <Hʉ만ӫ읻>) end class; | |
35 | ||
36 | =cut | |
37 | ||
38 | { | |
39 | package 옵젳Ṯ; | |
40 | use mro 'dfs'; | |
41 | ||
42 | package ᓕᵮꡠFᚖᶭ; | |
43 | use mro 'dfs'; | |
44 | use base '옵젳Ṯ'; | |
45 | ||
46 | package SㄣチenŦ; | |
47 | use mro 'dfs'; | |
48 | use base 'ᓕᵮꡠFᚖᶭ'; | |
49 | ||
50 | package 빞엗ᱞ; | |
51 | use mro 'dfs'; | |
52 | use base 'ᓕᵮꡠFᚖᶭ'; | |
53 | ||
54 | package ᕟ텔li겐ț; | |
55 | use mro 'dfs'; | |
56 | use base 'SㄣチenŦ'; | |
57 | ||
58 | package Hʉ만ӫ읻; | |
59 | use mro 'dfs'; | |
60 | use base '빞엗ᱞ'; | |
61 | ||
62 | package ቩᓪ찬; | |
63 | use mro 'dfs'; | |
64 | use base ('ᕟ텔li겐ț', 'Hʉ만ӫ읻'); | |
65 | } | |
66 | ||
67 | ok(eq_array( | |
68 | mro::get_linear_isa('ቩᓪ찬'), | |
69 | [ qw(ቩᓪ찬 ᕟ텔li겐ț SㄣチenŦ ᓕᵮꡠFᚖᶭ 옵젳Ṯ Hʉ만ӫ읻 빞엗ᱞ) ] | |
70 | ), '... got the right MRO for the ቩᓪ찬 Dylan Example'); |