++ed by:

1 non-PAUSE user.

Konstantin S. Uvarin
and 2 contributors


Assert::Refute::T::Scalar - Assertions about scalars for Assert::Refute suite.


Currently only one check exists in this package, maybe_is.

    use Test::More;
    use Assert::Refute::T::Scalar;

    maybe_is $foo, undef,          'Only passes if $foo is undefined';
    maybe_is $bar, 42,             'Only if undef or exact match';
    maybe_is $baz, qr/.../,        'Only if undef or matches regex';
    maybe_is $quux, sub { ok $_ }, 'Only if all refutations hold for $_';



All of the below functions are exported by default:

maybe_is $value, $condition, "message"

Pass if value is undef, apply condition otherwise.

Condition can be:

  • undef - only undefined value fits;

  • a plain scalar - an exact match expected (think is);

  • a regular expression - match it (think like);

  • anything else - assume it's subcontract. The value in question will be passed as both an argument and $_.

[EXPERIMENTAL] This function may be removed for good if it turns out too complex (see smartmatch debacle in Perl 5.27.7).


This module is part of Assert::Refute suite.

Copyright 2017-2018 Konstantin S. Uvarin. <khedin at cpan.org>

This program is free software; you can redistribute it and/or modify it under the terms of the the Artistic License (2.0). You may obtain a copy of the full license at: