in reply to Object Oriented Confusion!

That is because $obj is a Class::DBI::Iterator, not a User. If you want a User, you have to call search_like() in array context:
my ($obj) = User->search_like( 'upfirstname' => 'john%' );
Now, normally you would use an array on the left hand side, since you likely have multiple matches. This is just a trick i like to use when i want only one Foo object and not an iterator.

jeffa

L-LL-L--L-LL-L--L-LL-L--
-R--R-RR-R--R-RR-R--R-RR
B--B--B--B--B--B--B--B--
H---H---H---H---H---H---
(the triplet paradiddle with high-hat)