while ( defined( my $record = <$input_fh> ) ) { my %record_hash = rec2hash( $record ); while ( my ( $field, $value ) = each %record_hash ) { my $variant = variant_of( $value ); $variants_in{ $record }{ $field }{ $variant } = 1; push @{ $records_for{ $field }{ $variant } }, $record; } }