sub myUtlity { #1) Does not deal with case (2), expensive, unneeded stack change shift if(blessed($[0])); #2) Does not scale well to multiple params, does not handle a param like the value "0" my ($self, $param) = @_; $param ||= $self; }