From: Gavin Sinclair Date: 2003-01-28T09:55:59+09:00 Subject: Parsing: x = y || raise "error" I more or less commonly use the following idiom (taken from recent code): dir = ARGV.shift || raise "Require directory argument" Then I find that it fails: /home/gavin/bin/ckcr:3: parse error /home/gavin/bin/ckcr:3: warning: useless use of a literal in void context This fixes it: dir = ARGV.shift || raise("Require directory argument") Can anyone explain why the parentheses are required? Not a critical error or anything. I've just always wanted to know but been afraid to ask. Regards, Gavin