can(METHOD) can checks to see if its object has a method called METHOD. If it does then a reference to the sub is returned; if it does not then undef is returned. #### package A; # stuff taken out sub get_write_file_func { my $self = shift; return $self->can("_write_file"); } #### package A::B; use A; use vars qw/@ISA/; @ISA = qw/A/; # stuff taken out sub _write_file { my($path, $val, $start) = @_; # ... }