http://qs321.pair.com?node_id=694420


in reply to Splicing Arrays on pre-defined indices

Here is something to try,
my $line = "1!2!3!4!5!6!7!8!9"; my @arr = split /!/, $line; my @indices = (2,5..8); #just remember indexing starts at 0. print join(" : ", @arr);#original print "\n"; print join(" : ", @arr[2,5..8]);#explicit print "\n"; print join(" : ", @arr[@indices]);#predefined
Output
1 : 2 : 3 : 4 : 5 : 6 : 7 : 8 : 9 3 : 6 : 7 : 8 : 9 3 : 6 : 7 : 8 : 9

Update
Just thought of another quick way to do this...
my $line = "1!2!3!4!5!6!7!8!9"; my @arr = split /!/, $line; my @exclude = (2,5..8); #just remember indexing starts at 0. #set the elements to nothing and then filter them out. @arr[@exclude] = (); @arr = grep $_, @arr;
Just another thought,

-InjunJoel
"I do not feel obliged to believe that the same God who endowed us with sense, reason and intellect has intended us to forego their use." -Galileo