105 |
my $rec; |
my $rec; |
106 |
|
|
107 |
$self->{size} = 0; |
$self->{size} = 0; |
108 |
|
my $max_size; |
109 |
|
$max_size = ( $self->{offset} || 0 ) + $self->{limit} if $self->{limit}; |
110 |
|
|
111 |
|
warn "# max_size: $max_size"; |
112 |
|
|
113 |
while( $line = <$fh> ) { |
while( $line = <$fh> ) { |
114 |
chomp($line); |
chomp($line); |
128 |
} |
} |
129 |
} elsif ( $line eq 'ER' ) { |
} elsif ( $line eq 'ER' ) { |
130 |
# join tags |
# join tags |
131 |
foreach ( qw/AB DE ID TI SO RP SC/ ) { |
foreach ( qw/AB DE ID TI SO RP SC FU FX/ ) { |
132 |
$rec->{$_} = join(' ', @{ $rec->{$_} }) if defined $rec->{$_}; |
$rec->{$_} = join(' ', @{ $rec->{$_} }) if defined $rec->{$_}; |
133 |
} |
} |
134 |
|
# split on ; |
135 |
|
foreach ( qw/ID SC DE/ ) { |
136 |
|
$rec->{$_} = [ split(/;\s/, $rec->{$_}) ] if defined $rec->{$_}; |
137 |
|
} |
138 |
$rec->{'000'} = [ ++$self->{size} ]; |
$rec->{'000'} = [ ++$self->{size} ]; |
139 |
push @{ $self->{_rec} }, $rec; |
push @{ $self->{_rec} }, $rec; |
140 |
|
|
141 |
|
last if $max_size && $self->{size} == $max_size; |
142 |
|
|
143 |
$rec = {}; |
$rec = {}; |
144 |
$line = <$fh>; |
$line = <$fh>; |
145 |
chomp $line; |
chomp $line; |