package MyBaseClass; sub open_for_reading { my ($this, $params_ref) = @_; $params_ref ||= {}; return $this->get_context('path' => $params_ref->{'path'} || $this->path); } package MyDerivedClass; sub open_for_reading { my ($this, $params_ref) = @_; $params_ref ||= {}; my $context = $this->SUPER::open_for_reading(); if ($params_ref->{'join_longcalls'}){ ... modify context } return $context; }