#!/usr/bin/perl use strict; use warnings; use Test::More tests => 2; BEGIN { use_ok('Algorithm::C3'); } =pod example taken from: L Object ^ | LifeForm ^ ^ / \ Sentient BiPedal ^ ^ | | Intelligent Humanoid ^ ^ \ / Vulcan define class () end class; define class () end class; define class () end class; define class () end class; define class (, ) end class; =cut { package Object; sub my_ISA { no strict 'refs'; @{$_[0] . '::ISA'}; } package LifeForm; use base 'Object'; package Sentient; use base 'LifeForm'; package BiPedal; use base 'LifeForm'; package Intelligent; use base 'Sentient'; package Humanoid; use base 'BiPedal'; package Vulcan; use base ('Intelligent', 'Humanoid'); } is_deeply( [ Algorithm::C3::merge('Vulcan', 'my_ISA') ], [ qw(Vulcan Intelligent Sentient Humanoid BiPedal LifeForm Object) ], '... got the right C3 merge order for the Vulcan Dylan Example');