Beefy Boxes and Bandwidth Generously Provided by pair Networks
good chemistry is complicated,
and a little bit messy -LW
 
PerlMonks  

Re: Perl replacement for choice.com

by Athanasius (Abbot)
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 browsing the Monastery: (7)
As of 2015-07-07 00:32 GMT
Sections?
Information?
Find Nodes?
Leftovers?
    Voting Booth?

    The top three priorities of my open tasks are (in descending order of likelihood to be worked on) ...









    Results (86 votes), past polls