use 5.010; my $standard_say = sub { say 0 if $x ~~ [0..9, 50..59]; say 1 if $x ~~ [10..19, 60..69]; say 2 if $x ~~ [20..29, 70..79]; say 3 if $x ~~ [30..39, 80..89]; say 4 if $x ~~ [40..49, 90..99]; }; $standard_say->(40); # Now imagine we decide to special-case 39... my $modified_say = sub { if ($_[0] == 39) { say "yay!"; return; } $standard_say->(@_); }; $modified_say->(40); $modified_say->(39);