#!./perl use strict; use warnings; use utf8; use open qw( :utf8 :std ); require q(./test.pl); plan(tests => 1); =pod This example is taken from the inheritance graph of DBIx::Class::Core in DBIx::Class v0.07002: (No ASCII art this time, this graph is insane) The xx:: prefixes are just to be sure these bogus declarations never stomp on real ones =cut { package Ẋẋ::ḐʙIX::Cl았::Coレ; use mro 'c3'; our @ISA = qw/ Ẋẋ::ḐʙIX::Cl았::ᓭᚱi알ḭźɜ::Sᑐ랍lえ Ẋẋ::ḐʙIX::Cl았::Ĭⁿᰒ텣올움ᶮ Ẋẋ::ḐʙIX::Cl았::렐aチ온ሺṖ Ẋẋ::ḐʙIX::Cl았::ᛕķ::Ạuต Ẋẋ::ḐʙIX::Cl았::ᛕķ Ẋẋ::ḐʙIX::Cl았::ロẈ Ẋẋ::ḐʙIX::Cl았::ResultSourceProxy::탑lẹ Ẋẋ::ḐʙIX::Cl았::ᚪc엤ȭઋᶢऋouꩇ /; package Ẋẋ::ḐʙIX::Cl았::Ĭⁿᰒ텣올움ᶮ; use mro 'c3'; our @ISA = qw/ Ẋẋ::ḐʙIX::Cl았::ロẈ /; package Ẋẋ::ḐʙIX::Cl았::ロẈ; use mro 'c3'; our @ISA = qw/ Ẋẋ::ḐʙIX::Cl았 /; package Ẋẋ::ḐʙIX::Cl았; use mro 'c3'; our @ISA = qw/ Ẋẋ::ḐʙIX::Cl았::촘폰en팃엗 xx::Cl았::닽Ӕ::앛쳇sᚖ /; package Ẋẋ::ḐʙIX::Cl았::렐aチ온ሺṖ; use mro 'c3'; our @ISA = qw/ Ẋẋ::ḐʙIX::Cl았::렐aチ온ሺṖ::헬pḜrS Ẋẋ::ḐʙIX::Cl았::렐aチ온ሺṖ::앛쳇sᚖ Ẋẋ::ḐʙIX::Cl았::렐aチ온ሺṖ::찻찯eᚪtЁnʂ Ẋẋ::ḐʙIX::Cl았::렐aチ온ሺṖ::Pr오xᐇMeᖪ옫ś Ẋẋ::ḐʙIX::Cl았::렐aチ온ሺṖ::밧え Ẋẋ::ḐʙIX::Cl았 /; package Ẋẋ::ḐʙIX::Cl았::렐aチ온ሺṖ::헬pḜrS; use mro 'c3'; our @ISA = qw/ Ẋẋ::ḐʙIX::Cl았::렐aチ온ሺṖ::핫ᛗƳ Ẋẋ::ḐʙIX::Cl았::렐aチ온ሺṖ::핫ᶱn Ẋẋ::ḐʙIX::Cl았::렐aチ온ሺṖ::бl옹sTȭ Ẋẋ::ḐʙIX::Cl았::렐aチ온ሺṖ::ᛗᓆ톰ẰᚿẎ /; package Ẋẋ::ḐʙIX::Cl았::렐aチ온ሺṖ::Pr오xᐇMeᖪ옫ś; use mro 'c3'; our @ISA = qw/ Ẋẋ::ḐʙIX::Cl았 /; package Ẋẋ::ḐʙIX::Cl았::렐aチ온ሺṖ::밧え; use mro 'c3'; our @ISA = qw/ Ẋẋ::ḐʙIX::Cl았 /; package Ẋẋ::ḐʙIX::Cl았::ᛕķ::Ạuต; use mro 'c3'; our @ISA = qw/ Ẋẋ::ḐʙIX::Cl았 /; package Ẋẋ::ḐʙIX::Cl았::ᛕķ; use mro 'c3'; our @ISA = qw/ Ẋẋ::ḐʙIX::Cl았::ロẈ /; package Ẋẋ::ḐʙIX::Cl았::ResultSourceProxy::탑lẹ; use mro 'c3'; our @ISA = qw/ Ẋẋ::ḐʙIX::Cl았::ᚪc엤ȭઋᶢऋouꩇ Ẋẋ::ḐʙIX::Cl았::ResultSourceProxy /; package Ẋẋ::ḐʙIX::Cl았::ResultSourceProxy; use mro 'c3'; our @ISA = qw/ Ẋẋ::ḐʙIX::Cl았 /; package xx::Cl았::닽Ӕ::앛쳇sᚖ; our @ISA = (); use mro 'c3'; package Ẋẋ::ḐʙIX::Cl았::렐aチ온ሺṖ::핫ᛗƳ; our @ISA = (); use mro 'c3'; package Ẋẋ::ḐʙIX::Cl았::렐aチ온ሺṖ::핫ᶱn; our @ISA = (); use mro 'c3'; package Ẋẋ::ḐʙIX::Cl았::렐aチ온ሺṖ::бl옹sTȭ; our @ISA = (); use mro 'c3'; package Ẋẋ::ḐʙIX::Cl았::렐aチ온ሺṖ::ᛗᓆ톰ẰᚿẎ; our @ISA = (); use mro 'c3'; package Ẋẋ::ḐʙIX::Cl았::촘폰en팃엗; our @ISA = (); use mro 'c3'; package Ẋẋ::ḐʙIX::Cl았::ᚪc엤ȭઋᶢऋouꩇ; our @ISA = (); use mro 'c3'; package Ẋẋ::ḐʙIX::Cl았::ᓭᚱi알ḭźɜ::Sᑐ랍lえ; our @ISA = (); use mro 'c3'; package Ẋẋ::ḐʙIX::Cl았::렐aチ온ሺṖ::앛쳇sᚖ; our @ISA = (); use mro 'c3'; package Ẋẋ::ḐʙIX::Cl았::렐aチ온ሺṖ::찻찯eᚪtЁnʂ; our @ISA = (); use mro 'c3'; } ok(eq_array( mro::get_linear_isa('Ẋẋ::ḐʙIX::Cl았::Coレ'), [qw/ Ẋẋ::ḐʙIX::Cl았::Coレ Ẋẋ::ḐʙIX::Cl았::ᓭᚱi알ḭźɜ::Sᑐ랍lえ Ẋẋ::ḐʙIX::Cl았::Ĭⁿᰒ텣올움ᶮ Ẋẋ::ḐʙIX::Cl았::렐aチ온ሺṖ Ẋẋ::ḐʙIX::Cl았::렐aチ온ሺṖ::헬pḜrS Ẋẋ::ḐʙIX::Cl았::렐aチ온ሺṖ::핫ᛗƳ Ẋẋ::ḐʙIX::Cl았::렐aチ온ሺṖ::핫ᶱn Ẋẋ::ḐʙIX::Cl았::렐aチ온ሺṖ::бl옹sTȭ Ẋẋ::ḐʙIX::Cl았::렐aチ온ሺṖ::ᛗᓆ톰ẰᚿẎ Ẋẋ::ḐʙIX::Cl았::렐aチ온ሺṖ::앛쳇sᚖ Ẋẋ::ḐʙIX::Cl았::렐aチ온ሺṖ::찻찯eᚪtЁnʂ Ẋẋ::ḐʙIX::Cl았::렐aチ온ሺṖ::Pr오xᐇMeᖪ옫ś Ẋẋ::ḐʙIX::Cl았::렐aチ온ሺṖ::밧え Ẋẋ::ḐʙIX::Cl았::ᛕķ::Ạuต Ẋẋ::ḐʙIX::Cl았::ᛕķ Ẋẋ::ḐʙIX::Cl았::ロẈ Ẋẋ::ḐʙIX::Cl았::ResultSourceProxy::탑lẹ Ẋẋ::ḐʙIX::Cl았::ᚪc엤ȭઋᶢऋouꩇ Ẋẋ::ḐʙIX::Cl았::ResultSourceProxy Ẋẋ::ḐʙIX::Cl았 Ẋẋ::ḐʙIX::Cl았::촘폰en팃엗 xx::Cl았::닽Ӕ::앛쳇sᚖ /] ), '... got the right C3 merge order for Ẋẋ::ḐʙIX::Cl았::Core');