in reply to Calling Madness

Wouldn't this work: shift if UNIVERSAL::isa($_[0], __PACKAGE__) or $_[0] eq __PACKAGE__;