Here is a way you could encapsulate the chaining in a subroutine
use strict;
my $str = "the boy walked the dog";
$str=ChainSubs($str,
walked=>'fed',
boy=>'girl',
dog=>'Audrey II'
);
print $str;
sub ChainSubs{
my ($string,%subs)=@_;
foreach my $original (keys %subs) {
$string=~s/$original/$subs{$original}/;
}
$string;
}
This of course assumes that you don't care what order the substitutions are done in. If you did care, you could walk through @_ two elements at a time like this:
sub ChainSubs{
my $string = shift;
for (my $i=0;$i<@_;$i+=2) {
$string=~s/$_[$i]/$_[$i+1]/g;
}
return $string;
}
-
Are you posting in the right place? Check out Where do I post X? to know for sure.
-
Posts may use any of the Perl Monks Approved HTML tags. Currently these include the following:
<code> <a> <b> <big>
<blockquote> <br /> <dd>
<dl> <dt> <em> <font>
<h1> <h2> <h3> <h4>
<h5> <h6> <hr /> <i>
<li> <nbsp> <ol> <p>
<small> <strike> <strong>
<sub> <sup> <table>
<td> <th> <tr> <tt>
<u> <ul>
-
Snippets of code should be wrapped in
<code> tags not
<pre> tags. In fact, <pre>
tags should generally be avoided. If they must
be used, extreme care should be
taken to ensure that their contents do not
have long lines (<70 chars), in order to prevent
horizontal scrolling (and possible janitor
intervention).
-
Want more info? How to link
or How to display code and escape characters
are good places to start.
|