From: "gigaday@..." Date: 2006-11-13T19:35:06+09:00 Subject: beginner's question about passing arrays as arguments to methods I am doing a little script that builds an array (called darray) of all filenames in a directory tree. I am doing this by recursively calling a method (called enter_dir) and passing the partially filled array (called darray) down through the recursive calls. The code works, but I am concerned about the efficiency of passing what is potentially quite a large array around so many times. Should I be concerned about this or not? I also wrote the code using a global array ($darray) and this worked too and didn't need to array to be passed down through the recursions. What are the pros and cons of these two approaches? def enter_dir(this_dir, darray) farray = [] this_dir.each {|fname| farray << fname } farray.each {|fname| file_path = this_dir.path + '/' + fname if File.stat(file_path).directory? this_dir_sub = Dir.new(file_path) if fname != '.' && fname != '..' enter_dir(this_dir_sub, darray) end else darray << file_path end } end this_dir = Dir.new('/home/tony/Ruby/dot_recycle') darray = [] enter_dir(this_dir, darray) puts darray