---
name: "Text::BibTeX::Validate"
section: "3pm"
platform: "linux"
package: "libtext-bibtex-validate-perl"
version: "0.3.0-1"
release: "Debian 13 (Trixie)"
platforms: ["linux"]
url: "https://new.carta.tech/Text::BibTeX::Validate"
---

# Text::BibTeX::Validate(3pm)

validator for BibTeX format

## NAME

Text::BibTeX::Validate - validator for BibTeX format

## SYNOPSIS

```
    use Text::BibTeX;
    use Text::BibTeX::Validate qw( validate_BibTeX );
    my $bibfile = Text::BibTeX::File->new( 'bibliography.bib' );
    while( my $entry = Text::BibTeX::Entry->new( $bibfile ) ) {
        for my $warning (validate_BibTeX( $entry )) {
            print STDERR "$warning\n";
        }
    }
```

## DESCRIPTION

Text::BibTeX::Validate checks the standard fields of BibTeX entries for their compliance with their format. In particular, value of `"email"` is checked against RFC 822 mandated email address syntax, value of `"doi"` is checked to start with `10.` and contain at least one `"/"` and so on. Some nonstandard fields as `"isbn"`, `"issn"` and `"url"` are also checked. Failures of checks are returned as instances of Text::BibTeX::Validate::Warning.

## METHODS

### validate\_BibTeX( $what )

Takes plain Perl hash reference containing BibTeX fields and their values, as well as Text::BibTeX::Entry instances and returns an array of validation messages as instances of Text::BibTeX::Validate::Warning.

### clean\_BibTeX( $what )

Takes the same input as `"validate_BibTeX"` and attempts to reconcile trivial issues like dropping the resolver URL part of DOIs (see `"shorten_DOI"` method) and converting month numbers into three-letter abbreviations.

### shorten\_DOI( $doi )

Remove the resolver URL part, as well as `"doi:"` prefixes, from DOIs.

## AUTHORS

Andrius Merkys, \<merkys@cpan.org\>
