use strict;
my $str = 'I love my parents, Bon Jovi and Lada Gaga.
We invited the strippers, Hitler and Stalin.
The problem is, you can never know if the user is making a list, or just typing a bunch of words and inserting commas.
I\'m not sure whether to eat, shoot or leave!
List of words: can, can\'t and won\'t.
I will not use three-legged, blue or wooden stools.
Don\'t get this one or I\'ll be upset at you.
Put a command before this and I\'ll be sad.';
my $regex = qr/((?:[\w'-]+,\s+)+(?:[\w'-]+\s){0,2}[\w'-]+)(\s+(and|or)\s+[\w'-]+)/ip;
my $subst = '$1,$2';
my $result = $str =~ s/$regex/$subst/rg;
print "The result of the substitution is' $result\n";
Please keep in mind that these code samples are automatically generated and are not guaranteed to work. If you find any syntax errors, feel free to submit a bug report. For a full regex reference for Perl, please visit: http://perldoc.perl.org/perlre.html