in reply to Getting From here to an Array

You're not clear on what you want to do with the data. It sounds like you are trying to parse it, but that's not necessary to email it. Please clarify.

And please fix the formatting of your post. (Add <p> at the start of every paragraph, and add <c></c> around data and code.)

Replies are listed 'Best First'.
Re^2: Getting From here to an Array
by jseager (Initiate) on Jan 17, 2009 at 18:52 UTC

    My apologies for the formatting, first post. Yes, I thought I needed to parse those "groups" together into a line and was having difficulty with the multi line title lines. I had never considered that parsing was not necessary for an email. How would perl do that with the data I provided?

      Yes, I thought I needed to parse those "groups" together into a line

      That doesn't make much sense. Parsing is the opposite of putting things together into a line.

      Given the lack of direction, I'll just create an array of records using a single line lookahead.

      my $line = <$fh>; # Skip first line die if !defined($line); $line = <$fh>; # Skip second line die if !defined($line); $line = <$fh>; while (defined($line) && $line !~ /^© Copyright/) { chomp( my $date1 = $line ); $line = <$fh>; die if !defined($line); chomp( my $date2 = $line ); $line = <$fh>; die if !defined($line); my $body = $line; $line = <$fh>; my $body = ''; while ( defined($line) && $line !~ /^\d{2}\/\d{2}\/\d{4}$/ && $line !~ /^© Copyright/ ) { $body .= $line; $line = <$fh>; } chomp( $body ); my ($order) =~ $body =~ s/\n(.{7})\z// or die; push @recs, [ $date1, $date2, $body, $order ]; } # Skip copyright line die if !defined($line); $line = <$fh>; # Skip another line die if !defined($line); $line = <$fh>; die if defined($line);