package a; sub method { my $self=shift; # do something } package b; use NEXT; sub method { my $self=shift; # do something before $self->NEXT::method(@_); # do the normal stuff # do something after } package main; require a;require b; use Merge qw(b a)=>'c'; $c=new c;$c->method; # will call "b"'s implemetation, which will call "a"'s via NEXT