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