Ummm, I have no problem doing the substitution using the code supplied:
$line = "She was very absorbed in her homework.";
$word = "absorb";
print STDOUT "Line: $line\n";
$line =~ s/($word(?:s|ed))/<b>$1<\/b>/igm;
print STDOUT "New Line: $line\n";
print STDOUT "\$1 contains: $1\n";
Of course, I might consider changing it slightly to read:
$line =~ s/\b(${word}(?:s|ed)?)\b/<b>$1<\/b>/igm;
However, I did just discover that there is something more going on here, because while the original (without the \b) does set something in $1, my change doesn't (despite doing the substitution properly).
And finally, if you're just doing a match why are you using s///?
-
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.
|