#!/usr/bin/perl use strict; # https://perlmonks.org/?node_id=11137057 use warnings; my $arr=[1,2,3,4,5,6,7]; my $loop="2,4..5"; splice @$arr,$_,0,999 foreach map { /\.\./ ? $` .. $' : $_ } split /,/, $loop; use Data::Dump 'dd'; dd $arr;