Make sure each section is separated by a new line, including the last
section. If there is no new line at the end of the file, the last record
will be omitted.

The following puts each field in %data with the field name being the key and
the field value as the key's value, and it splits each line on the FIRST
colon:

----------------------------
#!/usr/bin/perl
use warnings;
use strict;

# connect to your db here
$/ = '';

while (<DATA>) {
  my %data = map { split /\s*:\s*/, $_, 2 } split /\n/;
  # instead of printing here, you would write to your database using the
connection from above
  print "$_  ==>  $data{$_}\n" foreach sort keys %data;
}

__DATA__
Title: DESIGN JOURNAL (COVER)
Purpose: Product Spotlight
Penetration: National
Role: Media Relations, Content Support
Results: Elevated Publicity and Brand Awareness
Credits: Evolutif Senior Management Team
Award: 2001 Award for Design Excellence - Max V Armchair

----------------------------

"Kevin Old" <[EMAIL PROTECTED]> wrote in message
news:[EMAIL PROTECTED]
Hello everyone,

I have several "sections" of data that look like this:

<snip>

Each "section" is separated by an empty line.  I'd like to capture one
"section" at a time, and then when each section has been captured, I'd
like to write it to a database.  I just can't figure out how to
identify the end of the section.



-- 
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]
<http://learn.perl.org/> <http://learn.perl.org/first-response>


Reply via email to