GSP
Quick Navigator

Search Site

Unix VPS
A - Starter
B - Basic
C - Preferred
D - Commercial
MPS - Dedicated
Previous VPSs
* Sign Up! *

Support
Contact Us
Online Help
Handbooks
Domain Status
Man Pages

FAQ
Virtual Servers
Pricing
Billing
Technical

Network
Facilities
Connectivity
Topology Map

Miscellaneous
Server Agreement
Year 2038
Credits
 

USA Flag

 

 

Man Pages
Text::Query(3) User Contributed Perl Documentation Text::Query(3)

Text::Query - Query processing framework

    use Text::Query;
    
    # Constructor
    $query = Text::Query->new([QSTRING] [OPTIONS]);

    # Methods
    $query->prepare(QSTRING [OPTIONS]);
    $query->match([TARGET]);
    $query->matchscalar([TARGET]);

This module provides an object that matches a data source against a query expression.

Query expressions are compiled into an internal form when a new object is created or the "prepare" method is called; they are not recompiled on each match.

The class provided by this module uses four packages to process the query. The query parser parses the question and calls a query expression builder (internal form of the question). The optimizer is then called to reduce the complexity of the expression. The solver applies the expression on a data source.

The following parsers are provided:

Text::Query::ParseAdvanced
Text::Query::ParseSimple

The following builders are provided:

Text::Query::BuildAdvancedString
Text::Query::BuildSimpleString

The following solver is provided:

Text::Query::SolveSimpleString
Text::Query::SolveAdvancedString

  use Text::Query;
  my $q=new Text::Query('hello and world',
                        -parse => 'Text::Query::ParseAdvanced',
                        -solve => 'Text::Query::SolveAdvancedString',
                        -build => 'Text::Query::BuildAdvancedString');
  die "bad query expression" if not defined $q;
  print if $q->match;
  ...
  $q->prepare('goodbye or adios or ta ta',
              -litspace => 1,
              -case => 1);
  #requires single space between the two ta's
  if($q->match($line)) {
  #doesn't match "Goodbye"
  ...
  $q->prepare('"and" or "or"');
  #quoting operators for literal match
  ...
  $q->prepare('\\bintegrate\\b', -regexp => 1);
  #won't match "disintegrated"

new ([QSTRING] [OPTIONS])
This is the constructor for a new Text::Query object. If a "QSTRING" is given it will be compiled to internal form.

"OPTIONS" are passed in a hash like fashion, using key and value pairs. Possible options are:

-parse - Package name of the parser. Default is Text::Query::ParseSimple.

-build - Package name of the builder. Default is Text::Query::Build.

-optimize - Package name of the optimizer. Default is Text::Query::Optimize.

-solve - Package name of the solver. Default is Text::Query::Solve.

-mode - Name of predefined group of packages to use. Options are currently "simple_text" and "advanced_text".

These options are handled by the "configure" method.

All other options are passed to the parser "prepare" function. See the corresponding manual pages for a description.

If "QSTRING" is undefined, the prepare function is not called.

The constructor will croak if a "QSTRING" was supplied and had illegal syntax.

configure ([OPTIONS])
Set the "parse", "build", "optimize" or "solve" packages. See the "CONSTRUCTOR" description for explanations.
prepare (QSTRING [OPTIONS])
Compiles the query expression in "QSTRING" to internal form and sets any options (same as in the constructor). "prepare" may be used to change the query expression and options for an existing query object. If "OPTIONS" are omitted, any options set by a previous call to "prepare" are persistent.

The optimizer (-optimize) is called with the result of the parser (-parse). The parser uses the builder (-build) to construct the internal form.

This method returns a reference to the query object if the syntax of the expression was legal, or croak if not.

match ([TARGET])
Calls the match method of the solver (-solve).
matchscalar ([TARGET])
Calls the matchscalar method of the solver (-solve).

Text::Query::ParseAdvanced(3), Text::Query::ParseSimple(3), Text::Query::BuildSimpleString(3), Text::Query::BuildAdvanedString(3), Text::Query::SolveSimpleString(3), Text::Query::SolveAdvancedString(3),

Text::Query::Build(3), Text::Query::Parse(3), Text::Query::Solve(3), Text::Query::Optimize(3)

https://github.com/jonjensen/Text-Query
https://rt.cpan.org//Dist/Display.html?Queue=Text-Query

Eric Bohlman (ebohlman@netcom.com)

Loic Dachary (loic@senga.org)

Jon Jensen, jon@endpoint.com

2013-08-13 perl v5.32.1

Search for    or go to Top of page |  Section 3 |  Main Index

Powered by GSP Visit the GSP FreeBSD Man Page Interface.
Output converted with ManDoc.