http://www.perlmonks.org?node_id=938921


in reply to Re: AJP ping
in thread AJP ping

Actually, || is not a bit-wise operator.

The reason that my statements like this:

socket $sock, PF_INET, SOCK_STREAM, $proto || die $!;

...aren't dying properly is because , has lower operator precedence than ||. The or operator has the lowest precedence. See the perlop docs.

This means that statement was evaluated like this:

socket $sock, PF_INET, SOCK_STREAM, ($proto || die $!);

...instead of like this:

socket ($sock, PF_INET, SOCK_STREAM, $proto) || die $!;

And this is now making me question the wisdom of PBP's rules of:

Don't use unnecessary parentheses for builtins and "honorary" builtins.
Because I was thinking that functions in the Socket module were essentially honorary builtins.