The first time I pointed out to you that you were recommending non-best-practice things to wisdom seekers and reinventing wheels was roughly 5 years ago. Since then, over the years, I've pointed out similar things to you numerous times: 1, 2, 3, 4, 5, 6.
I've also explained the why: This this site is a resource to help people learn Perl, and recommending things that go against the best practices is frowned upon. Plus, quoting myself from here: “I don't do this just for the sake of the criticism itself or because I want to discourage learning or take from any enjoyment you might get from writing code in this style - I'm very much a fan of TIMTOWTDI - and if you want to write these scripts like this for yourself, that's fine. But as soon as you put these into some kind of "production", what I've said before become real issues: the more code your write yourself, the more code you have to test and maintain. (And for asking questions, it gives others much more code to wade through.) And if you expose this to the world, there's the added issue of having much more code to secure properly.”
Yet your recent post still contains all of the problems that have been pointed out to you: reinvented wheels, two-argument open with bareword file handles, using uppercase variable names for non-constant variables, use of vec, silently clobbering characters from strings, and I even see a no warnings this time. Yet your post contains no disclaimer that the code is not following best practices. And once again, your reinvented wheels have caused bugs, for example, GetFileDate reports the incorrect month and time zone.
If you want to show off your code, then you are welcome to post it e.g. in Cool Uses for Perl, or perhaps as a RFC to Meditations, the above node would have been fine there. But the code style you've been posting here for the past 5 years is not suitable for recommendation to wisdom seekers.