in reply to Subroutine for returning a date, similar to sprintf

Whenever I've started to make "replacement for &foo" things, I've found it helpful to ask myself "why would people choose to use my replacement than the original &foo?"
99 out of 100, it's been "I guess they wouldn't.", and the hundredth time was because of some data validation I was performing on $bar before it was transformed by &foo, so I doubt it could even be called a replacement, but probably more of a wrapper. Asking this question of myself has saved me from writing some (potentially) bad code.

In fact, I see that in the heart of your code lies this :

$Inp=~s/%([\d.-]*)([smhDMYy])/sprintf("%$1d",eval "\$$2")/ge;
So this really isn't a replacement for sprintf, but an enhancement thereof.
Also, in addition to Kanji's suggestion of POSIX, there's also the (to borrow a phrase) the all-singing, all-dancing Date::Manip.