use Getopt::Long; my @foo; GetOptions( 'foo=s@' => \@foo, ) or exit 255; @foo = split m/,/, join ',', @foo; say $_ for @foo; # ./script --foo alpha,beta --foo gamma