I'm kind of confused about how scoping works in Ruby. Which Ruby scoping rules prevent the following code from printing out the value of x?
#!/usr/bin/ruby
x = 5
def test
puts "x = #{x}"
end
test # => undefined local variable or method `x' for main:Object
The equivalent Python script does print the value of x:
#!/usr/bin/python
x = 5
def test():
print "x = %s" % x
test() # => x = 5