# is there any way to limit the scope of bless? sub doit { my $db = shift; die "not a database class: $db" unless $db->isa("Database"); my $original = ref($db); bless $db, "Database::Special"; $db->doSomethingSpecial(); bless $db, $original; return $db->doNormalStuff(); }