```{index} single: Test2::Compare::Negatable ``` # Test2::Compare::Negatable Poor mans 'role' for compare objects that can be negated. ## DESCRIPTION Using this package inside an [Test2::Compare::Base](Base.md) subclass will overload `!$obj` and import `clone_negate()` and `toggle_negate()`. ## WHY? Until perl 5.18 the 'fallback' parameter to [overload](../../overload.md) would not be inherited, so we cannot use inheritance for the behavior we actually want. This module works around the problem by emulating the `use overload` call we want for each consumer class. ## ATTRIBUTES - $bool = $obj->negate - $obj->set\_negate($bool) - $attr = NEGATE() The NEGATE attribute will be added via [Test2::Util::HashBase](../Util/HashBase.md). ## METHODS - $clone = $obj->clone\_negate() Create a shallow copy of the object, and call `toggle_negate` on it. - $obj->toggle\_negate() Toggle the negate attribute. If the attribute was on it will now be off, if it was off it will now be on. ## SOURCE The source code repository for Test2-Suite can be found at `https://github.com/Test-More/test-more/`. ## MAINTAINERS - Chad Granum ## AUTHORS - Chad Granum ## COPYRIGHT Copyright Chad Granum . This program is free software; you can redistribute it and/or modify it under the same terms as Perl itself. See `http://dev.perl.org/licenses/`