in reply to upper/lowercase search/replace

well... \L lowercases everything after it... \l just does the first letter... use either \L or lc(). I suppose for the filehandle you could do...
$line =~ s/([A-Z]{4,})/___$1___/g; $line = lc($line); $line =~ s/___([a-z]{4,})___/uc($1)/ge;
that would work... there are probably better ways, but I'm still asleep... you don't need a regexp for the lc conversion, just running it through lc() should be fine, as I showed.
                - Ant