Definitely not in order of importance, and NOT to excoriate you (in fact, perhaps betraying bits 'n pieces of mine own ignorance), but
- Why use "-w" and "use warnings;" and why NOT "use strict;" Hint: you'll find a wealth of information by simply searching or supersearching.
- Naming of variables: "$media" for example -- ah, paper vs. canvas, vs. one-inch-tape vs. 8 inch floppies? BRRRRRT! Suggestion: use accurately meaningful var names.
- "Unknown file format" -- I don't think it's going to be an "unknown file format" that sends flow to the die; I think it's going to be a failure to match a string which includes, somewhere within it, the characters "WMS." Recommendation: make your messages mean what they say and say what they mean!
What this smells like is cargo culting and cut-and-pasting without a clear understanding of what the ancestor code did or how it worked.
And, for us to help, we surely need a somewhat clearer exposition -- a snippet, sample -- of the logfile whose format is unknown to us.
Please UPDATE your question... and please read How do I post a question effectively? both of which will help us to help you.