aboutsummaryrefslogtreecommitdiff
path: root/bindings/perl/sample.pl
diff options
context:
space:
mode:
Diffstat (limited to 'bindings/perl/sample.pl')
-rw-r--r--bindings/perl/sample.pl62
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");
+}