---
name: "CPAN::Reporter::History"
section: "3pm"
platform: "linux"
package: "libcpan-reporter-perl"
version: "1.2020-1"
release: "Debian 13 (Trixie)"
platforms: ["linux"]
url: "https://new.carta.tech/CPAN::Reporter::History"
---

# CPAN::Reporter::History(3pm)

Read or write a CPAN::Reporter history log

## NAME

CPAN::Reporter::History - Read or write a CPAN::Reporter history log

## VERSION

version 1.2020

## SYNOPSIS

```
     use CPAN::Reporter::History 'have_tested';

     @results = have_tested( dist => 'Dist-Name-1.23' );
```

## DESCRIPTION

Interface for interacting with the CPAN::Reporter history file.  Most methods are private for use only within CPAN::Reporter itself.  However, a public function is provided to query the history file for results.

## USAGE

The following function is available.  It is not exported by default.

### have\_tested()

```
     # all reports for Foo-Bar-1.23
     @results = have_tested( dist => 'Foo-Bar-1.23' );

     # all NA reports
     @results = have_tested( grade => 'NA' );

     # all reports on the current Perl/platform
     @results = have_tested();
```

Searches the CPAN::Reporter history file for records exactly matching search criteria, given as pairs of field-names and desired values.

Ordinary search criteria include:

- •

  `"dist"` -- the distribution tarball name without any filename suffix; from a `"CPAN::Distribution"` object, this is provided by the `"base_id"` method.

- •

  `"phase"` -- phase the report was generated during: either 'PL', 'make' or 'test'

- •

  `"grade"` -- CPAN Testers grade: 'PASS', 'FAIL', 'NA' or 'UNKNOWN'; Also may be 'DISCARD' for any failing reports not sent due to missing prerequisites

Without additional criteria, a search will be limited to the current version of Perl and the current architecture and OS version. Additional criteria may be specified explicitly or, by specifying the empty string, `"q{}"`, will match that field for *any* record.

```
     # all reports for Foo-Bar-1.23 on any version of perl
     # on the current architecture and OS version
     @results = have_tested( dist => 'Foo-Bar-1.23', perl => q{} );
```

These additional criteria include:

- •

  `"perl"` -- perl version and possible patchlevel; this will be dotted decimal (5.6.2) starting with version 5.6, or will be numeric style as given by `$]` for older versions; if a patchlevel exists, it must be specified similar to "5.11.0 patch 12345"

- •

  `"archname"` -- platform architecture name as given by `$Config`{archname}

- •

  `"osvers"` -- operating system version as given by `$Config`{osvers}

The function returns an array of hashes representing each test result, with all of the fields listed above.

## SEE ALSO

- •

  CPAN::Reporter

- •

  CPAN::Reporter::FAQ

## AUTHOR

David Golden \<dagolden@cpan.org\>

## COPYRIGHT AND LICENSE

This software is Copyright (c) 2023 by David Golden.

This is free software, licensed under:

```
  The Apache License, Version 2.0, January 2004
```
