Beefy Boxes and Bandwidth Generously Provided by pair Networks
"be consistent"
 
PerlMonks  

Re: Perl replacement for choice.com

by Athanasius (Archbishop)
on Mar 02, 2013 at 07:21 UTC ( [id://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,

Replies are listed 'Best First'.
Re^2: Perl replacement for choice.com
by jwkrahn (Abbot) on Mar 03, 2013 at 10:17 UTC

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

    $show_choices =~ s/(?<=.)(?=.)/,/g;
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.

Log In?
Username:
Password:

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

How do I use this?Last hourOther CB clients
Other Users?
Others meditating upon the Monastery: (9)
As of 2024-04-23 08:33 GMT
Sections?
Information?
Find Nodes?
Leftovers?
    Voting Booth?

    No recent polls found