with time-handling modules, both within the core of the language and otherwise. You certainly do not need to write your own code to pick-apart a well-formed date string. Create a date/time object, tell it to parse the string you have. When you're ready to spit out the date, tell the object to give it to you in string form (according to the format of your choice). See e.g. "Time::Piece."