in reply to Re^2: Case Munging
in thread Case Munging

FWIW, the following may give a slight improvement in speed, simplicity or generality (I will not bother to put it into file-processing form):
>perl -wMstrict -le "for (@ARGV) { s{ (?<= [[:upper:]]) ([[:upper:]]+) }{\L$1}xmsg; print; } " "XYZZY" "RUN4LIFE" "RUN42LIFE CO" "GENERAL WIDGET CO., INTL" "MI-GO BRAIN CYLINDERS, IPTY." Xyzzy Run4Life Run42Life Co General Widget Co., Intl Mi-Go Brain Cylinders, Ipty.
Supposed advantages: