# Dummy stuff for testing: my @array1 = qw ( a b c ); my @array2 = qw ( d e f ); my @et_cetera = qw ( etc etc etc ); my $opt_f = '@array1,@array2,@et_cetera'; my @AoA; for ( split /,/, $opt_f ) { my $array_ref = eval '\\' . $_; die "Bad input: '$_' doesn't seem to exist!\n" if $@; push @AoA, $array_ref; } print "@$_\n" for @AoA;