s/^\s*;\s*// || ! s/^\s*:\s*// && $s
-sswitch was given. These are precisely the conditions under which we'll accept the command as a Unix command. And, under all other conditions, we'll accept it as a Perl command.
Adding in parentheses, which happen to be optional in this case, we
see that the first logical connective to be concerned with is the "or"
s/^\s*;\s*// || ((! s/^\s*:\s*//) && $s)Note:
||is true, we do not evaluate the right side.
-sswitch wasn't given, the colon still will be stripped off.