+sub capitalize {
+ local $_ = shift;
+ s/\b([A-Z])([A-Z]*)\b/$1\L$2/g;
+ s/\b(I)(i*)\b/$1\U$2/g;
+ s/\bUs\b/US/g;
+ s/ (And|For|Of|Or|The|To|With) / \l$1 /g;
+ s/\b(Ma?c)([a-z])/$1\u$2/g;
+ s/\b(Tcp\/Ip|Pc)\b/\U$&/g;
+ s/\bThru\b/Through/g;
+ s/\bAcct\b/Accounting/g;
+ s/\bAmer\b/American/g;
+ s/\bChem\b/Chemistry/g;
+ s/\bComp\b/Composition/g;
+ s/\bFed\b/Federal/g;
+ s/\bGen\b/General/g;
+ #s/\bGovt\b/Government/g;
+ s/\bLit\b/Literature/g;
+ s/\bPrin\b/Principles/g;
+ return $_;
+}