From Code to Community: Sponsoring The Perl and Raku Conference 2025 Learn more

#!./perl
use strict;
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');