$ perl -wMstrict -le 'if((2,1,0)) {print"true"}else{print"false"}' Useless use of a constant (2) in void context at -e line 1. false #### $ perl -wMstrict -le 'if(()=(2,1,0)) {print"true"}else{print"false"}' true #### $ perl -wMstrict -le 'sub foo { print wantarray?"list":"scalar"; return (0); }; if(foo) {print "true"} else {print "false"} ' scalar false $ perl -wMstrict -le 'sub foo { print wantarray?"list":"scalar"; return (0); }; if(()=foo) {print "true"} else {print "false"} ' list true $ perl -wMstrict -le 'sub foo { print wantarray?"list":"scalar"; return (0); }; my @x=foo;if(@x) {print "true"} else {print "false"}' list true