s/(".*?")/($x=$1)=~y: :_:, $x/ge)
[CUT]
=~y: :_:, '=~y: :_:, '
----------------------------------------------------------------------
$ before an optional \n, and the end of the
string
----------------------------------------------------------------------
x/ge 'x/ge'
Hm... Is it good explanation??
I'll try in my poor english:
s/(".*?")/($x=$1)=~y: :_:, $x/ge)
^^^^^^^^^1
^^^^^^^2
^^^^^^^3
^^4
^^^5
1) take ALL between " and "
2) So you have ALL in $1. $1 is read only, so copy $1 to $x. And now, for one moment forget about all and work only on $x (this is thanx /e which "wraps an eval{...} around the replacement string and the evaluated result is substituted for the matched substring".
3)in $x replace all ' ' to '_'
4)put replaced $x into first s/from/to/
5)g - works globaly; e - eval the replacment string
greets
Uksza
-
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.