I'm a little confused by this message... ruby --version;ruby -we 'A=1;B=2;C=3;D=A -(B-C);p D' ruby 1.9.0 (2004-07-14) [i686-linux] -e:1: warning: ambiguous first argument; put parentheses or even spaces -e:1: undefined method `A' for main:Object (NoMethodError) ruby1.8 --version;ruby1.8 -we 'A=1;B=2;C=3;D=A -(B-C);p D' ruby 1.8.1 (2004-02-03) [i386-linux] -e:1: warning: ambiguous first argument; put parentheses or even spaces -e:1: undefined method `A' for main:Object (NoMethodError) It goes away if you make some whitespace tweaks.... ruby1.8 --version;ruby1.8 -we 'A=1;B=2;C=3;D=A-(B-C);p D' ruby 1.8.1 (2004-02-03) [i386-linux] 2 ruby1.8 --version;ruby1.8 -we 'A=1;B=2;C=3;D=A - (B-C);p D' ruby 1.8.1 (2004-02-03) [i386-linux] 2 Or decide not to use constants... ruby1.8 --version;ruby1.8 -we 'a=1;b=2;c=3;d=a -(b-c);p d' ruby 1.8.1 (2004-02-03) [i386-linux] 2 Even just one... ruby1.8 --version;ruby1.8 -we 'a=1;B=2;C=3;D=a -(B-C);p D' ruby 1.8.1 (2004-02-03) [i386-linux] 2 John Carter Phone : (64)(3) 358 6639 Tait Electronics Fax : (64)(3) 359 4632 PO Box 1645 Christchurch Email : john.carter / tait.co.nz New Zealand The universe is absolutely plastered with the dashed lines exactly one space long.