#!/usr/bin/perl use strict; use warnings; use Search::QueryParser; use Data::Dumper; my $s = 'site:www.cnn.com term2 -term3 +"my phrase" +(term4 term5)'; my $qp = new Search::QueryParser; my $query = $qp->parse($s) or die "Error in query : " . $qp->err; print "QUERY: $s\n"; print Dumper($query); #### $VAR1 = { '-' => [ { 'value' => 'term3', 'op' => ':', 'field' => '' } ], '' => [ { 'value' => 'www.cnn.com', 'op' => ':', 'field' => 'site' }, { 'value' => 'term2', 'op' => ':', 'field' => '' } ], '+' => [ { 'quote' => '"', 'value' => 'my phrase', 'op' => ':', 'field' => '' }, { 'value' => { '' => [ { 'value' => 'term4', 'op' => ':', 'field' => '' }, { 'value' => 'term5', 'op' => ':', 'field' => '' } ] }, 'op' => '()', 'field' => '' } ] };