in reply to
As Abigail-II already pointed out, __PACKAGE__ will tell you what package you're in. The only other, off-the-wall thought that I have is that your object reference is bless'd into class "MyApp::Person\0" somehow. This would explain why, for all intents and purposes, it ref $user says "MyApp::Person", but is unable to do anything that a MyApp::Person should be able to do. It's farfetched, but it's a possibility.
perl -pe '"I lo*`+$^X$\"$]!$/"=~m%(.*)%s;$_=$1;y^`+*^e v^#$&V"+@( NO CARRIER'