if (defined $var1 || defined $var2) if (defined $var1 && defined $var2) #### if (defined ($var1 || $var2)) if (defined ($var1 && $var2)) #### ./test.pl "" Test 1: NOK Test 2: OK Test 3: OK Test 4: NOK #### #!/usr/bin/perl use strict; use warnings; for my $i (1 .. 4) { my $result = (&successfulValidation ($i))? "OK": "NOK"; print "Test ", $i, ": ", $result, "\n"; } sub successfulValidation { my $test = shift; if ($test == 1) { return defined ($ARGV[0] || $ARGV[1]); } elsif ($test == 2) { return defined $ARGV[0] || defined $ARGV[1]; } elsif ($test == 3) { return defined ($ARGV[0] && $ARGV[1]); } elsif ($test == 4) { return defined $ARGV[0] && defined $ARGV[1]; } }