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'