---
name: "Syntax::Keyword::Assert"
section: "3pm"
platform: "linux"
package: "libsyntax-keyword-assert-perl"
version: "0.16-1"
release: "Debian 13 (Trixie)"
platforms: ["linux"]
url: "https://new.carta.tech/Syntax::Keyword::Assert"
---

# Syntax::Keyword::Assert(3pm)

assert keyword for Perl with zero runtime cost

## NAME

Syntax::Keyword::Assert - assert keyword for Perl with zero runtime cost

## SYNOPSIS

```
    use Syntax::Keyword::Assert;
    my $obj = bless {}, "Foo";
    assert($obj isa "Bar");
    # => Assertion failed (Foo=HASH(0x11e022818) isa "Bar")
```

## DESCRIPTION

Syntax::Keyword::Assert provides a syntax extension for Perl that introduces a `"assert"` keyword.

By default assertions are enabled, but can be disabled by setting `$ENV{PERL_ASSERT_ENABLED}` to false before this module is loaded:

```
    BEGIN { $ENV{PERL_ASSERT_ENABLED} = 0 }  # Disable assertions
```

When assertions are disabled, the `"assert"` are completely ignored at compile phase, resulting in zero runtime cost. This makes Syntax::Keyword::Assert ideal for use in production environments, as it does not introduce any performance penalties when assertions are not needed.

## KEYWORDS

### assert

```
    assert(EXPR)
```

If EXPR is truthy in scalar context, then happens nothing. Otherwise, it dies with a user-friendly error message.

Here are some examples:

```
    assert("apple" eq "banana");  # => Assertion failed ("apple" eq "banana")
    assert(123 != 123);           # => Assertion failed (123 != 123)
    assert(1 > 10);               # => Assertion failed (1 > 10)
```

## SEE ALSO

- PerlX::Assert

  This module also uses keyword plugin, but it depends on Keyword::Simple. And this module's error message does not include the failed expression.

- Devel::Assert

  This module provides a similar functionality, but it dose not use a keyword plugin.

## LICENSE

Copyright (C) kobaken.

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

## AUTHOR

kobaken \<kentafly88@gmail.com\>
