Or, shorter, sweeter and non-recursive (and kind of a restatement of Your Mother's contribution):

perl -wMstrict -le "sub standard_commas { return @_ == 0 ? '' : @_ == 1 ? qq{$_[0]} : join q{, }, @_[0 .. $#_ - 2], qq{$_[-2] and $_[-1]} } sub oxford_commas { return @_ < 3 ? standard_commas(@_) : join q{, }, @_[0 .. $#_ - 1], qq{and $_[-1]} } for (@ARGV) { my @words = split; print qq(\nfor words: @words); print 'standard commas: ', standard_commas(@words); print ' oxford commas: ', oxford_commas(@words); } " "" "a" "a b" "a b c" "a b c d" "a b c d e" for words: standard commas: oxford commas: for words: a standard commas: a oxford commas: a for words: a b standard commas: a and b oxford commas: a and b for words: a b c standard commas: a, b and c oxford commas: a, b, and c for words: a b c d standard commas: a, b, c and d oxford commas: a, b, c, and d for words: a b c d e standard commas: a, b, c, d and e oxford commas: a, b, c, d, and e

In reply to Re^2: Module for making english lists? by AnomalousMonk
in thread Module for making english lists? by markjugg

Title:
Use:  <p> text here (a paragraph) </p>
and:  <code> code here </code>
to format your post, it's "PerlMonks-approved HTML":



  • Posts are HTML formatted. Put <p> </p> tags around your paragraphs. Put <code> </code> tags around your code and data!
  • Titles consisting of a single word are discouraged, and in most cases are disallowed outright.
  • Read Where should I post X? if you're not absolutely sure you're posting in the right place.
  • Please read these before you post! —
  • Posts may use any of the Perl Monks Approved HTML tags:
    a, abbr, b, big, blockquote, br, caption, center, col, colgroup, dd, del, details, div, dl, dt, em, font, h1, h2, h3, h4, h5, h6, hr, i, ins, li, ol, p, pre, readmore, small, span, spoiler, strike, strong, sub, summary, sup, table, tbody, td, tfoot, th, thead, tr, tt, u, ul, wbr
  • You may need to use entities for some characters, as follows. (Exception: Within code tags, you can put the characters literally.)
            For:     Use:
    & &amp;
    < &lt;
    > &gt;
    [ &#91;
    ] &#93;
  • Link using PerlMonks shortcuts! What shortcuts can I use for linking?
  • See Writeup Formatting Tips and other pages linked from there for more info.