#!/usr/local/bin/perl use lib qw ( ./t ); use test_v1; package X; use Class::MethodMaker abstract => [ qw / a b / ], abstract => 'c'; sub new { bless {}, shift; } package Y; use vars '@ISA'; @ISA = qw ( X ); package main; Class::MethodMaker->VERSION eq '2.08' || Class::MethodMaker->VERSION >= 2.00 or die "Wrong C::MM: ", Class::MethodMaker->VERSION, "\n"; my $o = new Y; TEST { 1 }; TEST { eval { $o->a } ; $@ =~ /\QCan't locate abstract method "a" declared in "X" via "Y"./ or $@ =~ /\QCan't locate abstract method "a" declared in "X", called from "Y"./ or $@ =~ /\QCannot invoke abstract method 'X::a', called from 'Y'./; }; exit 0;