Taylor Lewick wrote:
>
> I have a data file that looks like this...
>
> Date
> Team Name 1
> Team Name 2
> Field1
> Field2
> FieldX
>
> Date
> Team Name 3
> Team Name 4
> Field 1
> FieldX
>
> and so on...
>
> Each entry will have the data and team 1 and 2's name.  But the number
> of fields will be variable...
> I would really like to turn this file into something like this...
> Date:Team Name 1:Team Name 2:Field1:Field2:FieldX
> Date:Team Name 3:Team Name 4:Field1:Field2:FieldX
>
> I'm not really sure where to get started.  I could load all of the
> values into an array (The file won't be too big) and print them back out
> all separated by colons, then run a regular expression to insert a blank
> line when it detects the date pattern.
>
> I don't know how to go about loading the data into an array or hash, and
> then printing it out formatted on one line until the next date is
> detected.  Am not sure how to combine those steps.

Hi Taylor.

If you set the input record separator - $/ - to a null string then it will
split the input file on one or more blank lines.

Take a look at the program below.

HTH,

Rob


#!perl
use strict;
use warnings;

local $/ = '';

while (<DATA>) {
  my @data = split /\n/;
  print join(':', @data), "\n";
}

__DATA__
Date
Team Name 1
Team Name 2
Field1
Field2
FieldX

Date
Team Name 3
Team Name 4
Field 1
FieldX

**OUTPUT

Date:Team Name 1:Team Name 2:Field1:Field2:FieldX
Date:Team Name 3:Team Name 4:Field 1:FieldX



-- 
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