sub start { my ( $self, $divisions, $file, $dump_all ) = @_; $self->{files} = {}; $self->{filenames} = {}; $self->logger()->debug("Opening output files"); for my $division ( @{$divisions} ) { ( my $out_file = $file ) =~ s/(.+)(\.[^.]+)$/$1_$division$2/; my $fh; $self->logger() ->debug("Opening output file $out_file for division $division"); open( $fh, '>', $out_file ) || croak "Could not open $out_file for writing"; $self->{files}->{$division} = $fh; $self->{filenames}->{$division} = $out_file; $self->{count}{$division} = 0; } if ( defined $dump_all && $dump_all == 1 ) { my $fh; $self->logger()->debug("Opening output file $file"); open( $fh, '>', $file ) || croak "Could not open $file for writing"; $self->{files}->{ $self->{all} } = $fh; $self->{filenames}->{ $self->{all} } = $file; $self->{count}{ $self->{all} } = 0; } $self->{files_handles} = {}; $self->logger() ->debug( "Opened " . scalar( values %{ $self->{files} } ) . " output files" ); return; } ## end sub start