my @words = split ' ', $line; my @boy_idxs = grep $words[$_] eq 'boy', 0..$#words; $words[$boy_idxs[rand(@boy_idxs)]] = 'man'; $line = join ' ', @words;