Beefy Boxes and Bandwidth Generously Provided by pair Networks
Keep It Simple, Stupid

Re: Putting special elements from a row into an array

by agianni (Hermit)
on Mar 22, 2007 at 12:59 UTC ( #606008=note: print w/ replies, xml ) Need Help??

in reply to Putting special elements from a row into an array

It's unclear what you are trying to do. Can you give an example of the output you are hoping for?

split//,q{john hurl, pest caretaker}and(map{print @_[$_]}(join(q{},map +{sprintf(qq{%010u},$_)}(2**2*307*4993,5*101*641*5261,7*59*79*36997,13 +*17*71*45131,3**2*67*89*167*181))=~/\d{2}/g));

Comment on Re: Putting special elements from a row into an array
Download Code
Replies are listed 'Best First'.
Re^2: Putting special elements from a row into an array
by ultibuzz (Monk) on Mar 22, 2007 at 13:05 UTC


    i want 2 arrays based on the row that is in the while atm one shoud contain @a=('2302') the other shoud contain @b=('2304(3-8, 92-99)', '2305(2, 4-9)')
    this is what i need on row basis

    kd ultibuzz

      Split isn't going to get your far on this. What you need is a good regex. Try this:

      while ( my $line = <DATA>){ my( @a, @b ); my ( $junk, $useful ) = split /\;/, $line; my @elements = $useful =~ m/ (\d+ # some numbers (?: # followed by (don't capture) \(.*?\) # other stuff (non-greedy) in parens )? # (optionally) ) # end capture /smxg; for my $element ( @elements ){ if ( $element =~ /\(.*\)/ ){ push @b, $element; } else{ push @a, $element; } } # do something with @a and @b } __DATA__ 2302.1;2302, 2304(3-8, 92-99), 2305(2, 4-9) 231.1;2301, 2303, 2304(1, 2, 90, 91), 2305(1, 3), 2306, 2307, 2308

      I'm sure you could do this more compactly, but I didn't take the time to optimize. The first RE does the split you're looking for, followed by a check for each item to see if it contains parens.

      perl -e 'split//,q{john hurl, pest caretaker}and(map{print @_[$_]}(joi +n(q{},map{sprintf(qq{%010u},$_)}(2**2*307*4993,5*101*641*5261,7*59*79 +*36997,13*17*71*45131,3**2*67*89*167*181))=~/\d{2}/g));'

        works great, but i need to say that i don't understand this regex thingy ;)
        still nub in regex and learning allday

        thx alot
        kd ultibuzz

Log In?

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

How do I use this? | Other CB clients
Other Users?
Others having an uproarious good time at the Monastery: (7)
As of 2015-11-30 10:12 GMT
Find Nodes?
    Voting Booth?

    What would be the most significant thing to happen if a rope (or wire) tied the Earth and the Moon together?

    Results (769 votes), past polls