This is a live mirror of the Perl 5 development currently hosted at https://github.com/perl/perl5
lex.t: Mangle obscenity (albeit euphemistic)
[perl5.git] / t / mro / vulcan_dfs_utf8.t
CommitLineData
204e6232
BF
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
12example taken from: L<http://www.opendylan.org/books/drm/Method_Dispatch>
13
14 옵젳Ṯ
15 ^
16 |
17 ᓕᵮꡠFᚖᶭ
18 ^ ^
19 / \
20 SㄣチenŦ 빞엗ᱞ
21 ^ ^
22 | |
23 ᕟ텔li겐ț Hʉ만ӫ읻
24 ^ ^
25 \ /
26 ቩᓪ찬
27
28 define class <SㄣチenŦ> (<life-form>) end class;
29 define class <빞엗ᱞ> (<life-form>) end class;
30 define class <ᕟ텔li겐ț> (<SㄣチenŦ>) end class;
31 define class <Hʉ만ӫ읻> (<빞엗ᱞ>) end class;
32 define class <ቩᓪ찬> (<ᕟ텔li겐ț>, <Hʉ만ӫ읻>) end class;
33
34=cut
35
36{
37 package 옵젳Ṯ;
38 use mro 'dfs';
39
40 package ᓕᵮꡠFᚖᶭ;
41 use mro 'dfs';
42 use base '옵젳Ṯ';
43
44 package SㄣチenŦ;
45 use mro 'dfs';
46 use base 'ᓕᵮꡠFᚖᶭ';
47
48 package 빞엗ᱞ;
49 use mro 'dfs';
50 use base 'ᓕᵮꡠFᚖᶭ';
51
52 package ᕟ텔li겐ț;
53 use mro 'dfs';
54 use base 'SㄣチenŦ';
55
56 package Hʉ만ӫ읻;
57 use mro 'dfs';
58 use base '빞엗ᱞ';
59
60 package ቩᓪ찬;
61 use mro 'dfs';
62 use base ('ᕟ텔li겐ț', 'Hʉ만ӫ읻');
63}
64
65ok(eq_array(
66 mro::get_linear_isa('ቩᓪ찬'),
67 [ qw(ቩᓪ찬 ᕟ텔li겐ț SㄣチenŦ ᓕᵮꡠFᚖᶭ 옵젳Ṯ Hʉ만ӫ읻 빞엗ᱞ) ]
68), '... got the right MRO for the ቩᓪ찬 Dylan Example');