http://www.perlmonks.org?node_id=705269


in reply to get array from getoptions

With the caveat that I'm really sure exactly what you are doing, I reformatted and tweaked a bit:
use strict; use warnings; use Getopt::Long; my $input = { output_type => 'default', files => [], eventlist => [] }; my $p = new Getopt::Long::Parser; $p->configure('pass_through'); my $getoptret = $p->getoptions ( 'files:s@' => $input->{files}, #filename(s) 'eventlist:s@' => $input->{eventlist}, #name of the e +ventlist 'output_directory:s' => \$input->{output_directory}, # desired out +put dir ); die "Error: Give input SEED volume\n" unless defined $input->{files}; foreach (@{$input->{files}}) { die "Error: Missing file" unless -e; } die "Error: Give name of eventlist that should be used\n" unless defined $input->{eventlist}; die "Error: Give output directory\n" unless defined $input->{output_directory}; print "File List: @{$input->{files}}\n"; pritn "Event List: @{$input->{eventlist}}\n"; print "Output Directory: $input->{output_directory}\n";
If you run it like this:

perl testit.pl -f test_1 -f test_2 -e event1 -e event2 -o outputdir

it will output this:

File List: test_1 test_2 Event: event1 event2 Output Directory: outputdir