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 #### 1 : 2 : 3 : 4 : 5 : 6 : 7 : 8 : 9 3 : 6 : 7 : 8 : 9 3 : 6 : 7 : 8 : 9 #### 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;