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 }