It works as in how? It parses? Yes, of course it will parse, what it will not do is give you a valid answer. I could join( "", 2, $eq, 1 ) all day long, but that doesn't mean 2 equals 1! The only reason that is "true" is because the value is "2 eq 1" (the string), which is not undefined or "", so it evaluates to true.