---
name: "Mail::SpamAssassin::PerMsgLearner"
section: "3pm"
platform: "linux"
package: "spamassassin"
version: "4.0.2-3"
release: "Arch Linux 2026-11-01"
platforms: ["linux"]
url: "https://new.carta.tech/Mail::SpamAssassin::PerMsgLearner"
---

# Mail::SpamAssassin::PerMsgLearner(3pm)

per-message status (spam or not-spam)

## NAME

Mail::SpamAssassin::PerMsgLearner - per-message status (spam or not-spam)

## SYNOPSIS

```
  my $spamtest = Mail::SpamAssassin->new({
    'rules_filename'      => '/etc/spamassassin.rules',
    'userprefs_filename'  => $ENV{HOME}.'/.spamassassin/user_prefs'
  });
  my $mail = $spamtest->parse();
  my $status = $spamtest->learn($mail,$id,$isspam,$forget);
  my $didlearn = $status->did_learn();
  $status->finish();
```

## DESCRIPTION

The Mail::SpamAssassin `learn()` method returns an object of this class.  This object encapsulates all the per-message state for the learning process.

## METHODS

- $didlearn = $status-\>**did\_learn()**

  Returns `1` if the message was learned from or forgotten successfully.

- $status-\>**finish()**

  Finish with the object.

## SEE ALSO

**Mail::SpamAssassin**(3) **spamassassin**(1)
