Beefy Boxes and Bandwidth Generously Provided by pair Networks
No such thing as a small change
 
PerlMonks  

Re^2: Putting special elements from a row into an array

by ultibuzz (Monk)
on Mar 22, 2007 at 13:05 UTC ( #606010=note: print w/ replies, xml ) Need Help??


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

sure
Output

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


Comment on Re^2: Putting special elements from a row into an array
Re^3: Putting special elements from a row into an array
by agianni (Hermit) on Mar 22, 2007 at 14:20 UTC

    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?
Username:
Password:

What's my password?
Create A New User
Node Status?
node history
Node Type: note [id://606010]
help
Chatterbox?
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: (13)
As of 2014-08-22 14:45 GMT
Sections?
Information?
Find Nodes?
Leftovers?
    Voting Booth?

    The best computer themed movie is:











    Results (158 votes), past polls