Hey all,<br><br>I&#39;m trying to figure something out, but having some trouble.  I&#39;m trying to replace multiple patterns via capture buffers, with multiple replacements contained in a hash.<br><br>Looking at the code below, you can see that the patterns I&#39;d like to match are contained in $regex just fine, however I&#39;d like to have mutiple $replacement{$#} &#39;s depending on the number of patterns I&#39;m trying to replace.<br>
<br>==== begin-code ===<br>#!/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;;<br>==== end-code ===<br><br><br>Either I&#39;m missing something, or this isn&#39;t actually possible, and I&#39;ll have to loop through the patterns and replace them individually.<br><br>Thoughts?<br>
<br>-Bobby<br>