Thanks guys, this looks exactly like what I was looking for!<br><br><br><div class="gmail_quote">On Wed, Dec 22, 2010 at 10:54 AM, Mike Stok <span dir="ltr">&lt;<a href="mailto:mike@stok.ca">mike@stok.ca</a>&gt;</span> wrote:<br>
<blockquote class="gmail_quote" style="border-left: 1px solid rgb(204, 204, 204); margin: 0pt 0pt 0pt 0.8ex; padding-left: 1ex;"><div style="word-wrap: break-word;">Maybe you want the e modifier:<div><br></div><div><div class="im">
<div>#!/usr/bin/env perl</div><div>use strict;</div><div>use warnings;</div><div><br></div></div><div>my %replacement = (</div><div>    a =&gt; &#39;d&#39;,</div><div>    b =&gt; &#39;e&#39;,</div><div>    c =&gt; &#39;f&#39;,</div>
<div>);</div><div><br></div><div># this needs to be done with more care as you want to make sure that</div><div># abc appears before ab, but you get the idea...</div><div>my $pattern = join(&#39;|&#39;, map { quotemeta } keys %replacement);</div>
<div>print &quot;pattern = $pattern\n&quot;;</div><div class="im"><div><br></div><div>my $line = &quot;*!*!* a *!*!* b *!*!* c *!*!*&quot;;</div></div><div>$line =~ s/($pattern)/$replacement{$1}/ge;</div><div><br></div><div>
print $line.&quot;\n&quot;;        </div><div>__END__</div><div><br></div><div>produces</div><div><br></div><div><div>ratdog:tmp mike$ perl <a href="http://try.pl" target="_blank">try.pl</a></div><div>pattern = c|a|b</div>
<div>*!*!* d *!*!* e *!*!* f *!*!*</div></div><div class="im"><div><br></div><div><div>On Dec 22, 2010, at 10:44 AM, J. Bobby Lopez wrote:</div><br><blockquote type="cite">#!/usr/bin/env perl<br>use strict;<br>use warnings;<br>
<br>my %replacement;<br>$replacement{&#39;a&#39;} = &#39;d&#39;;<br>$replacement{&#39;b&#39;} = &#39;e&#39;;<br>$replacement{&#39;c&#39;} = &#39;f&#39;;<br><br>my $line = &quot;*!*!* a *!*!* b *!*!* c *!*!*&quot;;<br><br>
#my $pattern = &#39;(a)|(b)|(c)&#39;; # Doesn&#39;t work, only matches first pattern<br>my $pattern = &#39;(a).*(b).*(c)&#39;; # kinda/sorta, replaces stuff between patterns also<br><br>#$line =~ s/$pattern/$replacement{$1}/; # &lt;-- here&#39;s where I&#39;m having difficulty<br>
$line =~ s/$pattern/$replacement{$1} $replacement{$2} $replacement{$3}/; # kinda/sorta<br><br>#$line =~ m/$pattern/;<br>#print &quot;$1, $2, $3\n&quot;;<br><br>print $line.&quot;\n&quot;;</blockquote></div><br></div><div>

<div style="margin: 0px; font-size: 12px;">-- </div><div style="margin: 0px; font-size: 12px;"><br></div><div style="margin: 0px; font-size: 12px;">Mike Stok &lt;<a href="mailto:mike@stok.ca" target="_blank">mike@stok.ca</a>&gt;</div>
<div style="margin: 0px; font-size: 12px;"><a href="http://www.stok.ca/%7Emike/" target="_blank">http://www.stok.ca/~mike/</a></div><div style="margin: 0px; font-size: 12px;"><br></div><div style="margin: 0px; font-size: 12px;">
The &quot;`Stok&#39; disclaimers&quot; apply.</div><div style="font-size: 12px;"><br></div><div style="font-size: 12px;"><br></div><span style="font-size: 12px;"><br></span>
</div>
<br></div></div></blockquote></div><br>