> I've recently come over from the Perl side Welcome! > of the programming world, and am curious, is there 'use strict' for > Ruby so I have to pre-declare my variables? Local variables must be defined, or you'll get a warning when they are used. What's different in Ruby is what counts as a definition: Ruby must have seen an assignment to that variable somewhere prior to its first use as an rvalue. That assignment does not have to have been executed, just seen: A program tht just contains: puts a #=> undefined local variable or method `a' give the error. However if false a = 99 end puts a #=> nil outputs 'nil'. > Also, how can I implement perl-style nested data structures in Ruby? The difference between Perl and Ruby here is that Ruby does not support autovivification, so if you want an array of hashes (for example) you'd do something like: a = [] # some time later a[n] ||= {} # ensure there's a hash at a[n] a[n]['cat'] = 'feline' HOWEVER... You don't find yourself doing that much in Ruby (or at least I don't). In Perl, you nest data structures because that's the easiest way of structuring data. In Ruby, creating classes and structures is so trivial that you use them instead. And when you do that, you then discover that it's easy to add methods to those classes to implement behavior associated with those data structures, and suddenly you discover you're doing object oriented programming :) It takes a while to break Perl habits in Ruby, because the languages are deceptively similar in many ways. Dave