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

Re: FMTYEWTK about split //

by ambrus (Abbot)
on Jan 21, 2004 at 13:21 UTC ( #322866=note: print w/replies, xml ) Need Help??

in reply to FMTYEWTK about split //

I always used ()=$string=~/(.)/gs; to split a string to characters. Also, it's sometimes useful to iterate through the characters of a list, for which you can use the scalar-context variation: while($string=~/(.)/gs){DO SOMETHING WITH ($1)}; -- you can't do this with split, can you?

Update: added s flags, strange noone noticed that

Replies are listed 'Best First'.
Re^2: FMTYEWTK about split //
by particle (Vicar) on Jan 21, 2004 at 14:52 UTC

    adding to Roger's reply,

    print $_, $/ for @{[ split // => $bar ]};

    is strict and warnings friendly, as well, and twisted in it's (useless) indirection.

    ~Particle *accelerates*

Re: Re: FMTYEWTK about split //
by Roger (Parson) on Jan 21, 2004 at 14:25 UTC
    you can't do this with split, can you?

    Sure can.
    for (split //, $string) { print "$_\n"; }
      I thought that for (split //, $string) { would cost a lot of memory if $string is long, but now I'm not sure.

        It will cost a lot of memory. Fortunately, $string is rarely large. And if it is large, the regex-iterator solution will probably be slow. You'll probably be better off with a substr solution on large strings.

        I wanted to explore how Perl's closures can be manipulated, and ended up creating an object system by accident.
        -- Schemer

        : () { :|:& };:

        Note: All code is untested, unless otherwise stated

Log In?

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

How do I use this? | Other CB clients
Other Users?
Others drinking their drinks and smoking their pipes about the Monastery: (2)
As of 2022-05-26 01:44 GMT
Find Nodes?
    Voting Booth?
    Do you prefer to work remotely?

    Results (92 votes). Check out past polls.