use Smart::Dispatch; my $standard_say = dispatcher { match [0..9, 50..59], dispatch { say 0 }; match [10..19, 60..69], dispatch { say 1 }; match [20..29, 70..79], dispatch { say 2 }; match [30..39, 80..89], dispatch { say 3 }; match [40..49, 90..99], dispatch { say 4 }; }; $standard_say->(40); my $modified_say = dispatcher { match 39, dispatch { say "yay!" } } . $standard_say; $modified_say->(40); $modified_say->(39);