{"id":20160173,"url":"https://github.com/trizen/search-multimatch","last_synced_at":"2026-06-05T06:31:18.845Z","repository":{"id":68776080,"uuid":"64148562","full_name":"trizen/Search-MultiMatch","owner":"trizen","description":"An efficient, tree-based, 2D multimatcher.","archived":false,"fork":false,"pushed_at":"2023-07-08T15:53:54.000Z","size":21,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"master","last_synced_at":"2025-12-01T06:34:12.032Z","etag":null,"topics":["perl","perl-module","perl5","search"],"latest_commit_sha":null,"homepage":"https://metacpan.org/release/Search-MultiMatch","language":"Perl","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"artistic-2.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/trizen.png","metadata":{"files":{"readme":"README.md","changelog":"Changes","contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2016-07-25T15:59:52.000Z","updated_at":"2023-07-18T09:07:28.000Z","dependencies_parsed_at":"2023-09-14T06:47:27.827Z","dependency_job_id":null,"html_url":"https://github.com/trizen/Search-MultiMatch","commit_stats":null,"previous_names":[],"tags_count":3,"template":false,"template_full_name":null,"purl":"pkg:github/trizen/Search-MultiMatch","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/trizen%2FSearch-MultiMatch","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/trizen%2FSearch-MultiMatch/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/trizen%2FSearch-MultiMatch/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/trizen%2FSearch-MultiMatch/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/trizen","download_url":"https://codeload.github.com/trizen/Search-MultiMatch/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/trizen%2FSearch-MultiMatch/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":33932048,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-05-26T15:22:16.424Z","status":"online","status_checked_at":"2026-06-05T02:00:06.157Z","response_time":120,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["perl","perl-module","perl5","search"],"created_at":"2024-11-14T00:12:39.498Z","updated_at":"2026-06-05T06:31:18.814Z","avatar_url":"https://github.com/trizen.png","language":"Perl","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Search::MultiMatch\n\n[Search::MultiMatch](https://metacpan.org/release/Search-MultiMatch) works by creating a multidimensional hash-table with keys as 2D-arrays, which are stored as nodes.\n\nIt accepts matching the stored entries with a pattern, that is also a 2D-array, identifying matches by walking the table from node to node.\n\n```perl\n    use Search::MultiMatch;\n\n    # Create a SMM object\n    my $smm = Search::MultiMatch-\u003enew();\n\n    # Add an entry\n    $smm-\u003eadd($key, $value);                # key is a 2D-array\n\n    # Search with a pattern\n    my @matches = $smm-\u003esearch($pattern);   # pattern is a 2D-array\n```\n\nThis example illustrates how to add some key/value pairs to the table and how to search the table with a given pattern at a later time:\n\n```perl\n    use Search::MultiMatch;\n    use Data::Dump qw(pp);\n\n    # Creates a SMM object\n    my $smm = Search::MultiMatch-\u003enew();\n\n    # Create a 2D-array key, by splitting the string\n    # into words, then each word into characters.\n    sub make_key {\n        [map { [split //] } split(' ', lc($_[0]))];\n    }\n\n    my @movies = (\n                  'My First Lover',\n                  'A Lot Like Love',\n                  'Funny Games (2007)',\n                  'Cinderella Man (2005)',\n                  'Pulp Fiction (1994)',\n                  'Don\\'t Say a Word (2001)',\n                  'Secret Window (2004)',\n                  'The Lookout (2007)',\n                  '88 Minutes (2007)',\n                  'The Mothman Prophecies',\n                  'Love Actually (2003)',\n                  'From Paris with Love (2010)',\n                  'P.S. I Love You (2007)',\n                 );\n\n    # Add the entries\n    foreach my $movie (@movies) {\n        $smm-\u003eadd(make_key($movie), $movie);\n    }\n\n    my $pattern = make_key('i love');        # make the search-pattern\n    my @matches = $smm-\u003esearch($pattern);    # search by the pattern\n\n    pp \\@matches;                            # dump the results\n```\n\nThe results are:\n\n```perl\n    [\n     {match =\u003e \"P.S. I Love You (2007)\",      score =\u003e 2},\n     {match =\u003e \"My First Lover\",              score =\u003e 1},\n     {match =\u003e \"A Lot Like Love\",             score =\u003e 1},\n     {match =\u003e \"Love Actually (2003)\",        score =\u003e 1},\n     {match =\u003e \"From Paris with Love (2010)\", score =\u003e 1},\n    ]\n```\n\n## INSTALLATION\n\nTo install this module, run the following commands:\n\n    perl Makefile.PL\n    make\n    make test\n    make install\n\n## SUPPORT AND DOCUMENTATION\n\nAfter installing, you can find documentation for this module with the\nperldoc command.\n\n    perldoc Search::MultiMatch\n\nYou can also look for information at:\n\n    RT, CPAN's request tracker (report bugs here)\n        http://rt.cpan.org/NoAuth/Bugs.html?Dist=Search-MultiMatch\n\n    AnnoCPAN, Annotated CPAN documentation\n        http://annocpan.org/dist/Search-MultiMatch\n\n    CPAN Ratings\n        http://cpanratings.perl.org/d/Search-MultiMatch\n\n    Search CPAN\n        http://search.cpan.org/dist/Search-MultiMatch/\n\n\n## LICENSE AND COPYRIGHT\n\nCopyright (C) 2016-2022 Daniel Șuteu\n\nThis program is free software; you can redistribute it and/or modify it\nunder the terms of the the Artistic License (2.0). You may obtain a\ncopy of the full license at:\n\nL\u003chttp://www.perlfoundation.org/artistic_license_2_0\u003e\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ftrizen%2Fsearch-multimatch","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Ftrizen%2Fsearch-multimatch","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ftrizen%2Fsearch-multimatch/lists"}