1#!./perl 2 3use strict; 4use warnings; 5use utf8; 6use open qw( :utf8 :std ); 7require q(./test.pl); plan(tests => 1); 8 9 10=pod 11 12=encoding UTF-8 13 14example 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 67ok(eq_array( 68 mro::get_linear_isa('ቩᓪ찬'), 69 [ qw(ቩᓪ찬 ᕟ텔li겐ț SㄣチenŦ ᓕᵮꡠFᚖᶭ 옵젳Ṯ Hʉ만ӫ읻 빞엗ᱞ) ] 70), '... got the right MRO for the ቩᓪ찬 Dylan Example'); 71