Beefy Boxes and Bandwidth Generously Provided by pair Networks
Your skill will accomplish
what the force of many cannot
 
PerlMonks  

Re: Perl replacement for choice.com

by Athanasius (Monsignor)
on Mar 02, 2013 at 07:21 UTC ( #1021396=note: print w/ replies, xml ) Need Help??


in reply to Perl replacement for choice.com

A comment on the regexen:

# regex to add a comma after each char # i believe you can think of it starting # at the second character since # ?<= means look to the left of the current # position # the . means to look at one character # the () are required to capture each character $show_choices =~ s/(?<=.)/,/g; $show_choices =~ s/,$//g; # remove the last comma

Actually, there is no capturing being done in the first regex; the parentheses are there only for grouping, i.e. to show where the positive look-behind assertion ends. (Try adding a $1 to the replacement part, and you will get a series of error messages beginning Use of uninitialized value $1.)

The first regex could also be written as:

$show_choices =~ s/(.)/$1,/g;

which does capture each character.

The two regexen can be combined into one using a negative look-ahead assertion:

$show_choices =~ s/(.)(?!$)/$1,/g;

See “Look-Around Assertions” under Extended Patterns in perlre.

Hope that helps,

Athanasius <°(((><contra mundum Iustus alius egestas vitae, eros Piratica,


Comment on Re: Perl replacement for choice.com
Select or Download Code
Re^2: Perl replacement for choice.com
by onelander (Sexton) on Mar 02, 2013 at 14:23 UTC
    Thank you very much for the correction. It is much appreciated.
Re^2: Perl replacement for choice.com
by onelander (Sexton) on Mar 02, 2013 at 14:37 UTC
    Code updated to reflect the suggested changes.
Re^2: Perl replacement for choice.com
by jwkrahn (Monsignor) on Mar 03, 2013 at 10:17 UTC

    You don't have to capture a character at all:

    $show_choices =~ s/(?<=.)(?=.)/,/g;

Log In?
Username:
Password:

What's my password?
Create A New User
Node Status?
node history
Node Type: note [id://1021396]
help
Chatterbox?
and the web crawler heard nothing...

How do I use this? | Other CB clients
Other Users?
Others pondering the Monastery: (17)
As of 2014-07-24 21:02 GMT
Sections?
Information?
Find Nodes?
Leftovers?
    Voting Booth?

    My favorite superfluous repetitious redundant duplicative phrase is:









    Results (167 votes), past polls