johngg@aleatico:~$ perl -Mstrict -Mwarnings -MData::Dumper -E 'say q{}; my @arr = ( q{a} .. q{m} ); my %idx = map { $_ => 1 } 2, 7 .. 9, 12; my @slc; my @inv; push @{ $idx{ $_ } ? \ @slc : \ @inv }, $arr[ $_ ] for 0 .. $#arr; print Data::Dumper->Dumpxs( [ \ @arr, \ @slc, \ @inv ], [ qw{ *arr *slc *inv } ] );' @arr = ( 'a', 'b', 'c', 'd', 'e', 'f', 'g', 'h', 'i', 'j', 'k', 'l', 'm' ); @slc = ( 'c', 'h', 'i', 'j', 'm' ); @inv = ( 'a', 'b', 'd', 'e', 'f', 'g', 'k', 'l' );