my $str = 'nodes0005'; substr($str,3,2,'AB'); print $str; # .. produces: nodAB005 # as required. #### my $str = 'nodes0005'; my @chars = split //, $str; # Split the string into an array. my $out = ''; # Define an output string for (my $i=0; $i<@chars; $i++) { if ( $i==3 ) { $out .= 'A'; # Character 4, replace with 'A' } elsif ($i==4) { $out .= 'B'; # Character 5, replace with 'B' } else { $out .= $chars[$i]; # Neither 4 or 5 so just straight output it } } print $out;