Hi, I read is S03,
The && and || operators are smarter about list context and return () on failure in list context rather than Bool::False. The operators still short-circuit, but if either operator would return a false value, it is converted to the null list in list context so that the false results are self-deleting. For "&&", wouldn't it be a better idea to return an empty list only if the *first* operand is false? In other words, I suggest that "$a && $b" behave in list context like this: * If $a is false, return () * Otherwise, return $b Here's a use case that would benefit from this behaviour: Suppose you want to generate an argument list for an external command. For some reason you have a boolean value $include_arg3 and you want to include $arg3 only if $include_arg3 is true: my @args = $arg1, $arg2, $include_arg3 && $arg3, $arg4; Here you probably want to include $arg3 even if it is a false value like "0", provided that $include_arg3 is true. Regards, Christoph