use Getopt::Long; my (@foos, @bars, @bazen, @quuxi); sub setter { no strict refs; push @{shift}, split /,/, @_; } GetOptions ( 'foos=s' => \setter, 'bars=s' => \setter, 'bazen=s' => \setter, 'quuxi=s' => \setter, );