a Proc is analogous to an anonymous subroutine in Perl
they're closures meaning they carry context around with them
Example
class AnotherNameSpace #this class knows nothing about the foo variable
def AnotherNameSpace.call_it(procObj)
procObj.call
end
end
foo = "a foo string"
myProc = proc { puts foo }
AnotherNameSpace.call_it(myProc) #prints 'a foo string'