Perl6 allows multiple subs and methods with the same name, differing only in
their signature.

    multi sub bar (Dog $foo) {?}
    multi sub bar (Cat $foo) {?}

Dispatching will happen based on the runtime signature of the subroutine or
method call.

WWW: http://search.cpan.org/dist/Sub-Multi/