in reply to
Having to remove \r from $ARGV[-1]
You can add a space at the end of the line, that'll probably take care of it. Unless your editor is set to drop trailing spaces...
More reliable is to use " --" to tell GetOptions that there are no more options. In that case, the trailing CR will probably be ignored.
Note that in a more recent perl (= less than a few years old), CR inside source code is automatically handled, because in older perls, it did choke on it (e.g. when running a Windows text script on Linux). But not for the shebang line (and I honestly don't know what happens now, with multiline strings).
Of course if you had a bit of discipline and set the line endings to Unix in your text editor, you wouldn't have this problem. Most decent text editors allow you to chose a default line ending for new file, or, I would hope so.