The 2 files are in different directories as you can see. The 2nd file in the stage directory has an external (what I can see looking at the file list in the directory of the 2nd file) dt stamp of 11/4 at 5:03.
That's not what the output of your run tells me. That output runs dir on each file, and that tells me that the two files actually have the same mtime. Whatever way you are using to "look at the file list in the directory of the 2nd file" is telling you something different, but that way is to blame, not your system or Perl. Your system and Perl are consistent.
Please help me understand what you mean. I change to the stage directory. Windows presents me with a list of files and their date. Are you saying that the Windows file system is showing me the wrong date?
At least cmd.exe using the dir command shows you the "correct" date in the sense of mtime. Whatever else you use seems to show you different data. I'm not the one to judge which one of the two is "right" or "wrong", but you will need to find out how you look at the "Windows file system", and determine whether the process of using dir or whatever else process you are using uses mtime or a different approach and which approach is "correct".
Your process as reflected in your program uses mtime and that approach is consistent with other parts of the OS that also are highly likely to use mtime (or rather, the Windows equivalent).
If you want to use a date entry different from mtime, you will have to specify which entry you want to use. Most likely, this entails detailing how you currently determine the "correct" timestamp of a file. If you can, for example, specify that you find the "correct" timestamp of a file through Explorer.exe, then likely culprits for showing a different timestamp than the mtime are various plugins for Explorer.exe that deliver a timestamp different from mtime.