---
name: "Log::Report::Die"
section: "3pm"
platform: "linux"
package: "perl-log-report"
version: "1.46-1"
release: "Arch Linux 2026-11-01"
platforms: ["linux"]
url: "https://new.carta.tech/Log::Report::Die"
---

# Log::Report::Die(3pm)

compatibility routines with Perl's die/croak/confess

## NAME

Log::Report::Die - compatibility routines with Perl's die/croak/confess

## INHERITANCE

```
 Log::Report::Die
   is an Exporter
```

## SYNOPSIS

```
  # use internally only
```

## DESCRIPTION

This module is used internally, to translate output of 'die' and Carp functions into Log::Report::Message objects.  Also, it tries to convert other kinds of exception frameworks into our message object.

## FUNCTIONS

- **die\_decode**(STRING, %options)

  The `"STRING"` is the content of `$@` after an **eval()** caught a **die()**. **croak()**, or **confess()**.  This routine tries to convert this into parameters for **Log::Report::report()**.  This is done in a very smart way, even trying to find the stringifications of `$!`.

  Returned are four elements: the error string or object which triggered the death originally (the original $@), and the opts, reason, and plain text message.  The opts is a HASH which, amongst other things, may contain a stack trace and location extracted from the death text or object.

  Translated components will have exception classes `"perl"`, and `"die"` or `"confess"`.  On the moment, the `"croak"` cannot be distiguished from the `"confess"` (when used in package main) or `"die"` (otherwise).

  The returned reason depends on whether the translation of the current `$!` is found in the `"STRING"`, and the presence of a stack trace.  The following table is used:

  ```
    errstr  stack  =>  reason
      no      no       ERROR   (die) application internal problem
      yes     no       FAULT   (die) external problem, think open()
      no      yes      PANIC   (confess) implementation error
      yes     yes      ALERT   (confess) external problem, caught
   -Option--Default
    on_die  'ERROR'
  ```

  - on\_die =\> REASON

    - **exception\_decode**($exception, %options)

  \[1.23\] This function attempts to translate object of other exception frameworks into information to create a Log::Report::Exception.  It returns the same list of parameters as **die\_decode()** does.

  Currently supported:

  - •

    DBIx::Class::Exception

  - •

    XML::LibXML::Error

## SEE ALSO

This module is part of Log-Report version 1.46, built on June 16, 2026. Website: *http://perl.overmeer.net/CPAN/*

## LICENSE

For contributors see file ChangeLog.

This software is copyright (c) 2007-2026 by Mark Overmeer.

This is free software; you can redistribute it and/or modify it under the same terms as the Perl 5 programming language system itself.
