in reply to perl our scoping from packages

our $FORMAT = '%Y%m%d%H%M%S' if(! defined $FORMAT);

uses questionable scoping. It would definitely be an error if my was used instead of our. It would be better as

our $FORMAT; $FORMAT = '%Y%m%d%H%M%S' if(! defined $FORMAT);

It's also very poor to use a global variable as a parameter.

But that's off topic.

I'm not actually going to go on topic since I can't trust any of your code. You obviously didn't run it or you'd have \n (the two character, not a newline) in your output.

Update: Oh boy did I call it! Given what the OP said in his reply, the code he said worked couldn't possibly have worked (even on a case-insensitive file system). Don't lie to us by telling us code works when it has never been run.