package BetterApproach; use strict; use warings; use Module; use base qw(Module); sub extended_function { my $self = shift; if( $something ) { # new stuff return $new_stuff } $self->SUPER::extended_function(@_); # old stuff }