my @a = 'a' .. 'g'; my $py_range = <>; # '[x:y]' my $perl_range = $py_range =~ s{\[:}{[0:}r =~ s{:\]}{:0]}r =~ s/:\K-?\d+/$&-1/er =~ s/-\d+/$&+@a/ger =~ s/:/../r; print eval '@a' . $perl_range;