in reply to replace a character based on rule file

while(<FH>) { my $inp_word4 = $_; my $data = 'undef'; @inp_word=split(//,$inp_word4); for(my $i=0;$i<@inp_word;$i++) { if (($inp_word[$i]=~m/(n)/i) && ($data eq 'undef') ){ $data =$1; next; } if (($inp_word[$i] =~ m/(a)/i) && ( $data eq 'n')){ $data = $data.$1; next; } if (($inp_word[$i] =~ m/(m)/i) && ( $data eq 'na')){ $data = 'undef'; $inp_word[$i] = '+d'; next; } } print @inp_word ; }

i have tested for the test cases "name domr fame naming namnam nanaming " and it's working.you can still make the code smaller.

in your code the if statement can never become true , your trying to match single character say 'n' with 'na'