NAME
DDC::Any - abstract wrapper for DDC::XS or DDC::PP
SYNOPSIS
##=====================================================================
## Preliminaries
##=====================================================================
## Package Variables
my
$which
=
$DDC::Any::WHICH
;
##-- either 'DDC::XS' or 'DDC::PP'
my
$xsver
=
$DDC::Any::MIN_XS_VERSION
;
##-- currently v0.21
##=====================================================================
## Usage
## ... address any DDC::(XS|PP)::* thingy as DDC::Any::*
my
$query
= DDC::Any->parse(
"foo && bar && !baz"
);
$query
->toStringFull();
$query
->isa(
'DDC::Any::CQuery'
) ?
"yup\n"
:
"nope\n"
;
DESCRIPTION
This module provides a unified API for parsing and manipulation of DDC search engine queries, using either DDC::XS or DDC::PP as a back-end. Using this package will walk the symbol table of the selected back-end namespace and recursively map variables, methods, and sub-packages to the DDC::Any
namespace, thus the class DDC::Any::CQToken
will be mapped to either DDC::XS::CQToken
or DDC::PP::CQToken
, depending on the back-end. Additionally, back-end subpackages will be modified to inherit from the associated DDC::Any
subpackage, so that that you can generically test for inheritance using for exanple UNIVERSAL::isa($query,'DDC::Any::CQToken')
on a $query
object of an appropriate back-end type. You can specify either :xs
or :pp
in the argument-list to use
(rsp. DDC::Any->import()
) in order to force use of a particular back-end.
ACKNOWLEDGEMENTS
perl by Larry Wall.
DDC originally by Alexey Sokirko.
AUTHOR
Bryan Jurish <moocow@cpan.org>
COPYRIGHT
Copyright (c) 2016-2018, Bryan Jurish. All rights reserved.
This library is free software; you can redistribute it and/or modify it under the same terms as Perl itself, either Perl version 5.14.2 or, at your option, any later version of Perl 5 you may have available.
SEE ALSO
perl(1), DDC::XS(3perl), DDC::PP(3perl)