NAME

LINQ::FieldSet::Assertion - represents an SQL-WHERE-like assertion/check

DESCRIPTION

LINQ::FieldSet::Assertion is a subclass of LINQ::FieldSet.

This is used internally by LINQ and you probably don't need to know about it unless you're writing very specific extensions for LINQ. The end user interface is the check_fields function in LINQ::Util.

CONSTRUCTOR

new( ARGSLIST )

Constructs a fieldset from a list of fields like:

  'LINQ::FieldSet::Assertion'->new(
    'field1', -param1 => 'value1', -param2,
    'field2', -param1 => 'value2',
  );

Allowed parameters are: -is (followed by a value), -to (followed by a value), -in (followed by a value), -like (followed by a value), -match (followed by a value), -cmp (followed by a value), -numeric (no value), -string (no value), -not (no value), and -nocase (no value).

METHODS

and( OTHER )

Return a LINQ::FieldSet::Assertion::AND object which is a conjunction of this assertion and another assertion.

or( OTHER )

Return a LINQ::FieldSet::Assertion::OR object which is an inclusive disjunction of this assertion and another assertion.

not

Return a LINQ::FieldSet::Assertion::NOT object which is the negation of this assertion.

coderef

Gets a coderef for this assertion; the coderef operates on $_.

to_string

Basic string representation of the fieldset.

The LINQ::FieldSet::Assertion::{AND,OR,NOT} classes are lightweight classes which also implement the and, or, not, and coderef methods, and have the same overloading as LINQ::FieldSet::Assertion, but do not inherit from it.

OVERLOADING

This class overloads "" to call the to_string method; & to call the and method; | to call the or method; ~ to call the not method; and &{} to call the coderef method.

BUGS

Please report any bugs to http://rt.cpan.org/Dist/Display.html?Queue=LINQ.

SEE ALSO

LINQ::FieldSet, LINQ::Util.

AUTHOR

Toby Inkster <tobyink@cpan.org>.

COPYRIGHT AND LICENCE

This software is copyright (c) 2021 by Toby Inkster.

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

DISCLAIMER OF WARRANTIES

THIS PACKAGE IS PROVIDED "AS IS" AND WITHOUT ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, WITHOUT LIMITATION, THE IMPLIED WARRANTIES OF MERCHANTIBILITY AND FITNESS FOR A PARTICULAR PURPOSE.