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;