$umask=0600; @ide_list=("SYMANTEC", "INPRISE", "NETBEANS", "SYBASE", "IBM", "SUN", "SUPERCEDE", "SILVERSTREAM", "PENUMBRA" ); while (@ARGV) { $filename = shift @ARGV; ($dev,$ino,$mode,$nlink,$uid,$gid,$rdev,$size, $atime,$mtime,$ctime,$blksize,$blocks) = stat($filename); $bakfile = $filename . ".bak"; unless (rename $filename, $bakfile) { warn "$0: cannot rename $filename to $bakfile, $!\n"; next; } unless (open(IN,$bakfile)) { warn "$0: cannot open $bakfile for reading, $!\n"; next; } unless (open(OUT,">$filename")) { warn "$0: cannot open $filename for writing, $!\n"; next; } while () { #Enable Section s{^\s*/\* LIMIT_START_GENERAL\s*$}{/\* LIMIT_START_GENERAL \*/\n}; s{^\s*LIMIT_END_GENERAL \*/\s*$}{/\* LIMIT_END_GENERAL \*/\n}; #Disable Section foreach $var (@ide_list) { s{^\s*/\* LIMIT_START_$var \*/\s*$}{/\* LIMIT_START_$var \n}; s{^\s*/\* LIMIT_END_$var \*/\s*$}{ LIMIT_END_$var \*/ \n}; } s{^\s*/\* LIMIT_START \*/\s*$}{/\* LIMIT_START \n}; s{^\s*/\* LIMIT_END \*/\s*$}{ LIMIT_END \*/\n}; print OUT; } close IN; close OUT; chmod 0644,$bakfile; system("del $bakfile"); chmod $mode,$filename; }