Of course, it always shines through when you have
But Perl still has one fault.... the bitwise operators. Which are bitwise numeric operators when either are numbers, but a bitwise string operator when both are strings. Which is pretty much the most useless operation ever, and the one you get almost all the time, since Perl numbers tend to be string internally when you get them from a user, database, etc.
So whenever you want to do a bitwise operation, your Perl looks like this:
my $bitwise = ($foo + 0) & ($bar + 0);
Just to cast those bitches internally into actual numbers and to be sure you're getting the right operator.
I can live with that in Perl. It's just one operator, and one you don't tend to use that often.
Particularly bad is the "+" operator which either means concatenate or add, both common operations! So you end up sprinkling all your code with stuff like:
var sum = (foo - 0) + (bar - 0);
var sum = (foo * 1) + (bar * 1);
So it's possible to get back strings variables from Math functions sometimes? (???)
So frustrating, that you can't write a simple numeric algorithm that work in a bunch of browsers without "cleaning" your variables all over the place to make sure they're actually numbers.
Update: had wrong Perl operator as example. brainfart. also s/polymorphic/overloaded/. i should know better.