You need to read about capturing matches into the $1,
$2, etc. variables. Basically, you need to put what
you want to match in parens. Each group of parens is a $N variable in the replacement pattern:
use strict;
my $test = "this is 'inquotes' o'leary";
$test =~ s/ \'(\S*)\' / \"$1\" /g;
print "$test\n";
It should also be noted that your use of whitespace to
find just the "words" will likely fall apart for some
cases. There are better ways of doing that. Again, as
part of your study, check out zero width assertions, such
as \b that matches at word boundaries without
actually matching a physical character. Also check out
lookahead assertions. In some cases, it can also be as
simple as replacing something like your \S
non-whitespace match with a character class that excludes
quotes.
-
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.
|