multi sub a ( Int $, Int $ ) {} multi sub a ( Int $, Str $ ) {} multi sub a ( Str $, Int $ ) {} multi sub a ( Str $, Str $ ) {} my( $x, $y ) = <>.split' '; a( $x, $y ); ## How do you determine which multi-sub to invoke at compile time?