in reply to Perl Boolean Evaluation Shows Incorrect Results

Aside from the escaping issue that Tanktalus pointed out, I suspect that you actually meant to use && (boolean and) rather than & (bitwise and). In this particular case, they happen to be equivalent, but, if your code ever needs to deal with values other than 1 and 0, using bitwise operators when you intend to perform boolean operations can produce unexpected results:
$ perl -E 'say 1 & 2 & 3' 0