note
aaron_baugher
<c> s[\b([a-z]+)\b][ $name_id{ $1 } ]ge;</c>
<p>
The 's' at the beginning says to find a pattern and replace it. The 'g' at the end says to repeat this process as many times as possible. The 'e' at the end says that the replacement part should be evaluated as code, not treated as literal text.
</p>
<p>In the first part, the pattern, the \b matches a "word boundary," the boundary between word characters and non-word characters like your commas. <c>[a-z]+</c> means a string of 1 or more consecutive lowercase letters. The parentheses around that capture whatever is matched within them and save it in the special variable $1.</p>
<p>In the replacement part, $1 contains the matched word, so this becomes a simple lookup for that word as a key in the <c>%name_id</c> hash, replacing it with the value corresponding to that key. As mentioned before, because of the 'g', this entire process is repeated for each match found in the line.</p>
<div class="pmsig"><div class="pmsig-597736">
<p>Aaron B.<br />
Available for small or large Perl jobs; see my home node.
</p>
</div></div>
1055846
1055864