On Tuesday 27 February 2007 14:25, Fergal Daly wrote: > Why not have something like > > --- > package UNIVERSAL::isa; > our %care_about; > > sub import { > my $self = shift; > @[EMAIL PROTECTED] = (); > } > > sub isa { > my ($obj, $class) = @_; > # do correct isa stuff > warn "my warning" if (exists $care_about{$class}) or (exists > $care_about{ref $obj}); > } > > *UNIVERSAL::isa = sub \&isa; > --- > then in Test::MockObject; > > use UNIVERSAL::isa __PACKAGE__; > > you could even add caller() by default making no different at all. > Then you only give a warning when people call UNIVERSAL::isa on your > objects,
Yeah, I was thinking about that last night and this morning. It's a little tricky to allow class methods too, but that part works in UNIVERSAL::isa and UNIVERSAL::can right now, so it's doable. -- c