in reply to Reading multiple files one line at a time from arguments
I'd consider using Getopt::Long to define a flag that can contain multiple values. This way, you'd have something like:
./readfiles.pl -f file1 -f file2 -f file3 [download]