# Pastebin hsBKPkGe multi sub ordinate( :$st where .comb.tail == 1 ) { $st ~ "st" } multi sub ordinate( :$nd where .comb.tail == 2 ) { $nd ~ "nd" } multi sub ordinate( :$rd where .comb.tail == 3 ) { $rd ~ "rd" } multi sub ordinate( :$th where { { $_ == 0 || $_ > 3 } given $th.comb.tail } ) { $th ~ "th" } say ordinate :1st; say ordinate :2nd; say ordinate :0th; say ordinate :44th; say ordinate :42nd;