in reply to || vs or

As mickeyn said, it is a precedence problem. With the hight precedence operator || you need an extra set of parentheses:
(my (undef,undef,$uid,$gid) = getpwnam(q[user1])) || die "oh no";
You asked "Should I start using or consistently?" IMO it is a good idea to do everything consistently, or to have a good reason for not doing so.