in reply to oo programming-how do I find existing methods?

The UNIVERSAL 'can' method should tell you this. From perlobj:
Sometimes you want to call a method when you don't know the method name ahead of time. You can use the arrow form, replacing the method name with a simple scalar variable containing the method name or a reference to the function. $method = $fast ? "findfirst" : "findbest"; $fred->$method(@args); # call by name if ($coderef = $fred->can($parent . "::findbest")) { $self->$coderef(@args); # call by coderef }
Basically:
$obj->method(1, 2, 3); # general case if ($obj->can('method')) { print "Yep, \$obj has a method named 'method'\n"; } if ($sub = $obj->can('method')) { $sub->($obj, 1, 2, 3); # same effect as general case }