Several of the solutions batted-about here so far suffer in my humble from “the cardinal sin of brevity.” Yes, they are short, but they are not clear. The code, whatever it is, should be abundantly clear and also readily maintainable, even as the requirements are known to change and evolve over time. I deal mostly with existing systems, and it is quite painful to watch “clever” code reacting like a bowl of fragile gelatin to what should have been an ordinary and small evolution. I never care for “how few lines it takes,” and assume that there are always a few more microseconds to spare. (Granted, I do not deal in über-performance situations, at least not in Perl.) Please, write it in the most obvious way possible, and add plenty of comments.