diff options
Diffstat (limited to 'bindings/perl/sample.pl')
-rw-r--r-- | bindings/perl/sample.pl | 62 |
1 files changed, 62 insertions, 0 deletions
diff --git a/bindings/perl/sample.pl b/bindings/perl/sample.pl new file mode 100644 index 0000000..520f5fc --- /dev/null +++ b/bindings/perl/sample.pl @@ -0,0 +1,62 @@ +use marisa; + +$keyset = new marisa::Keyset; +$keyset->push_back("cake"); +$keyset->push_back("cookie"); +$keyset->push_back("ice"); +$keyset->push_back("ice-cream"); + +$trie = new marisa::Trie; +$trie->build($keyset); +print("no. keys: ", $trie->num_keys(), "\n"); +print("no. tries: ", $trie->num_tries(), "\n"); +print("no. nodes: ", $trie->num_nodes(), "\n"); +print("size: ", $trie->io_size(), "\n"); + +$agent = new marisa::Agent; + +$agent->set_query("cake"); +$trie->lookup($agent); +print($agent->query_str(), ": ", $agent->key_id(), "\n"); + +$agent->set_query("cookie"); +$trie->lookup($agent); +print($agent->query_str(), ": ", $agent->key_id(), "\n"); + +$agent->set_query("cockoo"); +if ($trie->lookup(agent)) { + print($agent->query_str(), ": not found\n"); +} + +print("ice: ", $trie->lookup("ice"), "\n"); +print("ice-cream: ", $trie->lookup("ice-cream"), "\n"); +if ($trie->lookup("ice-age") == $marisa::INVALID_KEY_ID) { + print("ice-age: not found\n"); +} + +$trie->save("sample.dic"); +$trie->load("sample.dic"); + +$agent->set_query(0); +$trie->reverse_lookup($agent); +print($agent->query_id(), ": ", $agent->key_str(), "\n"); +$agent->set_query(1); +$trie->reverse_lookup($agent); +print($agent->query_id(), ": ", $agent->key_str(), "\n"); + +print("2: ", $trie->reverse_lookup(2), "\n"); +print("3: ", $trie->reverse_lookup(3), "\n"); + +$trie->mmap("sample.dic"); + +$agent->set_query("ice-cream soda"); +while ($trie->common_prefix_search($agent)) { + print($agent->query_str(), ": ", $agent->key_str(), " (", + $agent->key_id(), ")\n"); +} + +$agent->set_query("ic"); +while ($trie->predictive_search($agent)) { + print($agent->query_str(), ": ", $agent->key_str(), " (", + $agent->key_id(), ")\n"); +} |