From: Tom Pollard Date: 2006-12-20T01:10:04+09:00 Subject: Re: Odd Problem with Command Line Args On Dec 19, 2006, at 10:27 AM, Alex Ciarlillo wrote: > For some reason when using command line arguments to specify input > files, whenever I use 'gets' it seems to be reading from the argument > files instead of STDIN. > > My code is something like this (simplified): > > > > emp_file = ARGV[0] > inp_file = ARGV[1] > out_file = ARGV[2] > > print "Please enter the first date of the pay period (MM/DD/YYYY): " > date = gets > puts date > exit > > > > Now instead of allowing me to type a response it is just spitting out > the first line of the file that is given by ARGV[0]. In this case the > file is a list of 3 digit numbers and just spits out "###\n" and exits > without allowing me to type anything. Any ideas on why this is > happening? It sounds like Ruby reproduces Perl's magical treatment of the commandline args. (Input is taken from the files listed on the command line, unles stdin is redirected.) Perhaps you need to clear the ARGV array after reading the values out? For instance, use emp_file = ARGV.shift inp_file = ARGV.shift out_file = ARGV.shift instead of what you had above. TomP