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