From: Stefano Crocco Date: 2010-12-18T20:05:48+09:00 Subject: Re: Someone explain to me the logic behind ARGV[0] On Saturday 18 December 2010 19:12:57 Kaye Ng wrote: > For example there's a code > lines = File.readlines(ARGV[0]) > Why do i need the [0]? > > I have another program, testingargv.rb with this code > puts ARGV.join('-') > (no [0] parameter) > if i type in the command prompt, testingargv.rb test 123 > the result is test-123 > > i don't understand the logic behind [0] in > lines = File.readlines(ARGV[0]) > > thanks guys! ARGV is an array. Calling ARGV[0] returns the first argument of the array, that is the first argument passed on the command line to the ruby script. Calling ARGV.join('-') returns a string obtained by concatenating the elements of the array with a - between each two of them. The line lines = File.readlines(ARGV[0]) assumes that the first parameter passed to the script on the command line is the name of the file, so ARGV[0] contains the name of the file and File.readlines(ARGV[0]) returns an array of the lines contained in that file. For more information, see ri Array#[] and ri Array#join Stefano