Tom Pollard
12/19/2006 4:10:00 PM
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):
>
> <code>
>
> 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
>
> </code>
>
> 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