in reply to Parsing multi-line records

I'm not sure if you want all the fields in a single data structure or in a nested one. In other words, do you want a single array of the lines, split on colons; or do you want an array of 11 arrays, with each child array containing the colon separated fields of its corresponding line?

Here is what I might do based on my current understanding:

#!/usr/bin/perl use strict; use warnings; use constant RECORD_SIZE => 11; my (@record, @lines); open FOO, 'test.plx' or die; while (@lines = grep defined, map scalar <FOO>, 1 .. RECORD_SIZE) { if (@lines == 11) { chomp @lines; # flatten into a single array ... @record = map split(':'), @lines; # ... or build an array of arrays # @record = map [ split ':' ], @lines; } else { # what to do if line count is not a multiple of RECORD_SIZE? } }