Sophie

Sophie

distrib > Fedora > 15 > i386 > by-pkgid > 9071f74972c6c620ebb44a28d418eea0 > files > 26

perl-Class-Method-Modifiers-1.09-1.fc15.noarch.rpm

#!/usr/bin/env perl
use strict;
use warnings;
use Test::More tests => 1;

my $D = D->new();
is($D->orig, "DBA", "C not called");

BEGIN
{
    package A;
    sub new { bless {}, shift }
    sub orig { "A" }

    package B;
    use Class::Method::Modifiers;
    our @ISA = ('A');
    around orig => sub { "B" . shift->() };

    package C;
    use Class::Method::Modifiers;
    our @ISA = ('A');
    around orig => sub { "C" . shift->() };

    package D;
    use Class::Method::Modifiers;
    our @ISA = ('B', 'C');
    around orig => sub { "D" . shift->() };
}