Mike Steiner wrote:
> What's the difference between @ and @@? Specifically, which should I use 
> if
> I need a global variable in a non-OOP Ruby program?
> 
> Thanks!
> 
> Mike Steiner

@ = Instance variable
@@ = Class variable

If you need a global variable in a non-OOP program, I guess I'd suggest 
using a constant (capitalized variable). Here's an example of @ and @@ 
usage:

irb(main):001:0> class Foo
irb(main):002:1>   attr_accessor :a
irb(main):003:1>   @@b = 0
irb(main):004:1>   def initialize
irb(main):005:2>     @a = 0
irb(main):006:2>   end
irb(main):007:1>   def add_a
irb(main):008:2>     @a += 1
irb(main):009:2>   end
irb(main):010:1>   def add_b
irb(main):011:2>     @@b += 1
irb(main):012:2>   end
irb(main):013:1>   def b
irb(main):014:2>     @@b
irb(main):015:2>   end
irb(main):016:1> end
=> nil
irb(main):017:0> one_foo = Foo.new
=> #<Foo:0x28dc078 @a=0>
irb(main):018:0> two_foo = Foo.new
=> #<Foo:0x28d9ea4 @a=0>
irb(main):019:0> one_foo.add_a
=> 1
irb(main):020:0> one_foo.a
=> 1
irb(main):021:0> two_foo.a
=> 0
irb(main):022:0> one_foo.add_b
=> 1
irb(main):023:0> one_foo.b
=> 1
irb(main):024:0> two_foo.b
=> 1

-- 
Posted via http://www.ruby-forum.com/.