@ranges = ([172,178],[183,189],[201,208]); #### $input =~ s/(\d+)/(grep {$1 >= $_->[0] && $1 <= $_->[1]} @ranges) ? $symbol : $1/eg; #### @ranges = (); push @ranges, "[172,178]"; push @ranges, "[183,189]"; push @ranges, "[201,208]";