Beefy Boxes and Bandwidth Generously Provided by pair Networks
Perl: the Markov chain saw
 
PerlMonks  

Re^2: Elegant way to split into sequences of identical chars? (while //g)

by tphyahoo (Vicar)
on Nov 30, 2005 at 15:16 UTC ( #512956=note: print w/replies, xml ) Need Help??


in reply to Re: Elegant way to split into sequences of identical chars? (while //g)
in thread Elegant way to split into sequences of identical chars?

For me, easier to understand written so:
use strict; use warnings; use Data::Dumper; print join " ", splitSameChars('xx556xx'); sub splitSameChars { my $letters = shift; push @_, $1 while $letters =~ /((.)\2*)/g; @_; }
(The for loop confused me.)
  • Comment on Re^2: Elegant way to split into sequences of identical chars? (while //g)
  • Download Code

Replies are listed 'Best First'.
Re^3: Elegant way to split into sequences of identical chars? (for)
by tye (Sage) on Nov 30, 2005 at 15:50 UTC
    (The for loop confused me.)

    Ah, but it wasn't a for loop. It was a for aliasing. This can be a very useful technique, so you might want to get used to it. Granted, in this case, it was done to try to better meet the original request for 'an "elegant" 1-liner', and isn't the way I would usually write code (and not even the way I originally posted the code, before I noticed the quoted part of the original request).

    - tye        

      Thanks, but what is that exactly? Google and supersearch weren't much help.

        for can be used to loop over a list of items (in which case it makes more sense to use foreach except that Perl programmers are usually too interested in being terse). It can be used to construct a C-style loop, for(init;whileTrue;gotoNext). It can also be used to create a temporary alias to some scalar that you want to do more than one operation on.

        for( $thingy{foo()}{bar()} ) { s/^\s+//; s/\s+(#.*)?$//; tr/A-Z/a-z/; }

        vs.

        $thingy{foo()}{bar()} =~ s/^\s+//; $thingy{foo()}{bar()} =~ s/\s+(#.*)?$//; $thingy{foo()}{bar()} =~ tr/A-Z/a-z/;

        - tye        

Log In?
Username:
Password:

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

How do I use this? | Other CB clients
Other Users?
Others wandering the Monastery: (6)
As of 2020-01-25 20:51 GMT
Sections?
Information?
Find Nodes?
Leftovers?
    Voting Booth?
    Notices?