+ my $rec = {
+ '000' => [ $mfn ],
+ };
+
+ my $line = $self->{_lines}->[ $mfn - 1 ] || return;
+ confess "expected ARRAY for _lines $mfn" unless ref($line) eq 'ARRAY';
+
+# warn "## line = ",dump( $line );
+
+ my $col = 'A';
+ my $c = 0;
+ foreach my $e ( @$line ) {
+ $rec->{$col} = $e;
+ $c++;
+ # FIXME what about columns > ZZ
+ if ( $col eq 'Z' ) {
+ $col .= 'AA';
+ } elsif ( $col eq 'ZZ' ) {
+ $self->_get_logger()->logwarn("ignoring colums above ZZ (original ", $#$line + 1, " > $c max columns)");
+ last;
+ } elsif ( $col =~ m/([A-Z])Z$/ ) {
+ $col .= $1++ . 'A';
+ } else {
+ $col++;
+ }
+ }
+
+# warn "## rec = ",dump( $rec );
+
+ return $rec;