On 10.03.2007 17:07, Sebastian Hungerecker wrote: > Joseph Schiller wrote: >> for some reason block processing is counter intuitive here >> this code does not work >> >> e = Dir.open('/user/path/Documents') >> e.entries.sort {|file| puts file } >> => warning: multiple values for a block parameter (2 for 1) > > It doesn't work because you pass a block that accepts only one argument to > sort. Any block passed to sort is supposed to take two arguments, compare > these arguments and return -1, 0 or 1 depending on which argument is greater. > > What you apparenty want to do would be archieved by writing > e.entries.sort.each {|file| puts file } > thus passing the block to each and not to sort. There is also a class method entries, so the above code can be rewritten as Dir.entries('/user/path/Documents').sort.each {|e| puts e} or even shorter puts Dir.entries('/user/path/Documents').sort Kind regards robert