Beefy Boxes and Bandwidth Generously Provided by pair Networks
Perl-Sensitive Sunglasses
 
PerlMonks  

Answer: How do I split a file into separate sections?

( #6723=categorized answer: print w/ replies, xml ) Need Help??

Q&A > regular expressions > How do I split a file into separate sections? contributed by chromatic

while ($data =~ s!(TI|AU|JN):(.*)?!!s) { push @{$sections{$1}}, $2; }
That will build a hash of arrays with the headers as keys. Things you might want to change are as follows:
  • With the /s modifier on the regex, . will match newlines. You may not want this (but it makes the regex much more complicated)
  • You may not want a hash of arrays. Remove the @ and use the .= operator
  • You may want to match a newline after the colon.
This all depends on your data. Personally, I'd use split in a heartbeat.

Comment on Answer: How do I split a file into separate sections?
Download Code
Log In?
Username:
Password:

What's my password?
Create A New User
Chatterbox?
and the web crawler heard nothing...

How do I use this? | Other CB clients
Other Users?
Others wandering the Monastery: (8)
As of 2015-07-04 17:32 GMT
Sections?
Information?
Find Nodes?
Leftovers?
    Voting Booth?

    The top three priorities of my open tasks are (in descending order of likelihood to be worked on) ...









    Results (60 votes), past polls