require isa; # this should go away once this is in the core package Foo; isa Bar; #### package isa; use strict; use warnings; BEGIN { no warnings 'redefine'; my $old = \&UNIVERSAL::isa; *UNIVERSAL::isa = sub { goto &$old if defined wantarray; no strict 'refs'; push @{caller().'::ISA'}, @_; } #UNIVERSAL::isa } 1; #### isa Bar; #### Bar->isa;