in reply to Date processor

There doesn't appear to be anything fundamentally wrong with your strategy of using a regexp. There is no point in using the s/// substitution on your string, however, seeing as you are matching the entire string (/^...$/), and assignment using '=', such as you have done, is probably faster.

If you were changing only part of the string from one format to another, you would likely be using s///, but since you are modifying the variables mathematically, you would have to use the s///e format, with the 'e' for eval switch turned on. That will evaluate the second part of the regexp, performing the math and replacing with the result.