@a = @b || @c; # this is wrong @a = scalar(@b) || @c; # really meant this #### use strict; use Data::Dumper; my @a = (1, 2, 3); my @b = (4, 5, 6); my @c = @a or @b; # equivalent to (my @c = @a) or @b; print Dumper(\@c); #### $VAR1 = [ 1, 2, 3 ]; #### use strict; use Data::Dumper; my @a = (1, 2, 3); my @b = (4, 5, 6); my @c = @a or @b; my @d = (@a or @b); print Dumper(\@c); print Dumper(\@d); #### $VAR1 = [ 1, 2, 3 ]; $VAR1 = [ 3 ];