my @phrases = ( 'kinase i', 'hib', 'tor', 'tor SET6', 'SET6', 'p16(INK4A)', 'cell' ); $sentence='kinase inhibitor SET6 activates p16(INK4A) in cell-wall.'; #Desired Output: 'kinase inhibitor #SET6# activates #p16(INK4A)# in cell-wall' #I am trying to solve like this: my $phrases_re = join '|', map { quotemeta } @phrases; $sentence =~ s/($phrases_re)/\#$1\#/g;