use strict 'refs'; my $str = 'foo:bar:'; my($a, @options) = split(/:/, $str, 0); my($b, $c, $d) = split(/:/, $str, 4); use Data::Dumper; print Dumper([$a, \@options]); print Dumper([$b, $c, $d]);