Well, if you've already tried Getopt::Long and found it lacking, and you're working on a personal project where others won't have to maintain your code, and you aren't charging me by the hour for it, then sure write your own args parser. But don't start there and check Getopt::Long later. There's an opportunity cost to writing redundant code when you could have been doing something new and valuable.