DDC::PP::Object - common perl base class for DDC::PP objects
#-- Preliminaries use DDC::PP; $CLASS = 'DDC::PP::Object'; ##--------------------------------------------------------------------- ## C -> Perl $q = DDC::PP->parse("foo && bar"); $qs = $q->toString; ##-- $qs is "('foo' && 'bar')" $hash = $q->toHash(); ##-- query encoded as perl hash-ref #... the perl object can be manipulated directly (perl refcounting applies) $hash->{Dtr1} = {class=>'CQTokExact',Value=>'baz'}; ##-- NO memory leak! ##--------------------------------------------------------------------- ## Perl->C $q2 = $CLASS->newFromHash($hash); ##-- $q2 needs explicit free() $qs2 = $q2->toString(); ##-- $qs2 is "(@'baz' && 'bar') ##--------------------------------------------------------------------- ## Deep copy & Traversal $q3 = $q->clone(); ##-- wraps newFromHash($q->toHash) $q = $q->mapTraverse(\&CODE); ##-- recursively tweak sub-objects ##--------------------------------------------------------------------- ## JSON utilities $json = $q->toJson(); ##-- ddc-internal json-ification $json = $q->TO_JSON(); ##-- wraps toHash() for the JSON module $obj = $CLASS->newFromJson($str); ##-- wraps newFromHash(from_json($str)) ##--------------------------------------------------------------------- ## Debugging $obj->DumpTree(); ##-- dumps substructure to STDERR $obj->free(); ##-- expplicit deep destruction, use at your own risk \@kids = $obj->Children(); ##-- ARRAY-ref of direct children \@desc = $obj->Descendants(); ##-- ARRAY-ref of descendants undef = $obj->DisownChildren(); ##-- prevent deep destruction (dummy method; you should never need this) $cnt = $obj->refcnt(); ##-- get internal reference count (dummy method)
The DDC::PP::Object class is a pure-perl fork of the DDC::XS::Object class, which see.
perl(1), DDC::PP(3perl), DDC::PP::CQuery(3perl), DDC::PP::CQCount(3perl), DDC::PP::CQFilter(3perl), DDC::PP::CQueryOptions(3perl), DDC::PP::CQueryCompiler(3perl).
Bryan Jurish <moocow@cpan.org>
Copyright (C) 2016 by Bryan Jurish
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.
To install DDC::Concordance, copy and paste the appropriate command in to your terminal.
cpanm
cpanm DDC::Concordance
CPAN shell
perl -MCPAN -e shell install DDC::Concordance
For more information on module installation, please visit the detailed CPAN module installation guide.