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 ������������������ 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 ������������������; 43 use mro 'dfs'; 44 use base '���������'; 45 46 package S������en��; 47 use mro 'dfs'; 48 use base '������������������'; 49 50 package ���������; 51 use mro 'dfs'; 52 use base '������������������'; 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�� ������������������ ��������� H���������� ���������) ] 70), '... got the right MRO for the ��������� Dylan Example'); 71