To hippo and tybalt89:

Thank you both for participating in this stimulating dialogue. There are always new things to learn about Perl regexes, and as ikegami said, this is an exercise in nested s///, which I very much want to master. Here are nine more tests I added to hippo's test paradigm, to wit:

sub getArray { my $n = $_[0]; my @examples = ( "The population of the U.S. is ${\($n*340389145)} people", "The frequency is ${\($n*13824)}Hz", "This is a real number, ${\($n*723540.34034)}", "${\($n*1045.357)}", "${\($n*834569.334656)}", "${\($n*1000000)} B.C.", "My daily compensation is \$${\($n*2234.36)} per hour.", "${\($n*2349134)}", "${\($n*123456)}", ); return @examples; } my $n = 4; my @have = getArray(1); my @want = getArray($n); for my $i (0 .. $#have) { my $have = $have[$i]; # say "$have"; my $want = $want[$i]; # say "$want"; (my $work1 = (($have) =~ s{ \d+\.?\d* }{ $& * $n }erx )) =~ s{ \d+ + }{ $& =~ s/ (?<=\d) (?= (?:\d{3} )+ (?!\d) ) /,/xrg; }ex; (my $work2 = $want) =~ s{ (?<int> (\d+)) }{ $+{int} =~ s/ (?<=\d) (?= (?:\d{3} )+ (?!\d) ) /,/xrg; }ex; is $work1, $work2, 'Factor and insert commas where appropriate'; }

As I said, I could not make tybalt89's commify variation work, but perhaps he can. As you can see from getArray(), I made the tests more robust. I agree with hippo re performance. If I were going to include a construction as complicated as this that gets called many times, I'd Benchmark it to do comparative analysis.

Regards


In reply to Re^8: regex in REPLACEMENT in s/// by perlboy_emeritus
in thread regex in REPLACEMENT in s/// by perlboy_emeritus

Title:
Use:  <p> text here (a paragraph) </p>
and:  <code> code here </code>
to format your post, it's "PerlMonks-approved HTML":



  • Posts are HTML formatted. Put <p> </p> tags around your paragraphs. Put <code> </code> tags around your code and data!
  • Titles consisting of a single word are discouraged, and in most cases are disallowed outright.
  • Read Where should I post X? if you're not absolutely sure you're posting in the right place.
  • Please read these before you post! —
  • Posts may use any of the Perl Monks Approved HTML tags:
    a, abbr, b, big, blockquote, br, caption, center, col, colgroup, dd, del, details, div, dl, dt, em, font, h1, h2, h3, h4, h5, h6, hr, i, ins, li, ol, p, pre, readmore, small, span, spoiler, strike, strong, sub, summary, sup, table, tbody, td, tfoot, th, thead, tr, tt, u, ul, wbr
  • You may need to use entities for some characters, as follows. (Exception: Within code tags, you can put the characters literally.)
            For:     Use:
    & &amp;
    < &lt;
    > &gt;
    [ &#91;
    ] &#93;
  • Link using PerlMonks shortcuts! What shortcuts can I use for linking?
  • See Writeup Formatting Tips and other pages linked from there for more info.