From: John Joyce Date: 2008-01-02T10:46:01+09:00 Subject: Re: another newbie question if your program grows to many files, and you still need $ globals, you can simply create a file and name it something obvious like "globals.rb" and do all of the initializing of the globals there. For debugging or error checking you can simply keep track of which ruby file was running when the last change was made to the global. Also consider using instance variables which are prefixed with the @ sigil. These are visible within anything in that instance object of the class. Rails is an example of heavy use of instance variables. They can simplify life a lot, but sometimes it is better to pass data to a function than to simply use the same instance variable everywhere (such as when you want a function or method to use encapsulation and do its own validation internally. When you have something that interfaces with a lot of other things already, it can be a good idea to keep the function/method's name and signature and return the same but retain the ability to change its internals) .