sub standard_commas { return join q{, }, @_ < 2 ? @_ : (@_[0 .. $#_ - 2], qq{$_[-2] and $_[-1]}) } sub oxford_commas { return join q{, }, @_ < 3 ? goto &standard_commas : (@_[0 .. $#_ - 1], qq{and $_[-1]}) }