{"id":20550217,"url":"https://github.com/dnmfarrell/devel-didyoumean","last_synced_at":"2026-06-05T11:31:26.155Z","repository":{"id":22398376,"uuid":"25735460","full_name":"dnmfarrell/Devel-DidYouMean","owner":"dnmfarrell","description":null,"archived":false,"fork":false,"pushed_at":"2014-11-05T14:06:03.000Z","size":173,"stargazers_count":4,"open_issues_count":2,"forks_count":1,"subscribers_count":2,"default_branch":"master","last_synced_at":"2025-04-09T00:51:28.135Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"language":"Perl","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"other","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/dnmfarrell.png","metadata":{"files":{"readme":"README.pod","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}},"created_at":"2014-10-25T15:13:31.000Z","updated_at":"2021-11-05T23:37:55.000Z","dependencies_parsed_at":"2022-07-17T09:16:19.243Z","dependency_job_id":null,"html_url":"https://github.com/dnmfarrell/Devel-DidYouMean","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/dnmfarrell/Devel-DidYouMean","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/dnmfarrell%2FDevel-DidYouMean","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/dnmfarrell%2FDevel-DidYouMean/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/dnmfarrell%2FDevel-DidYouMean/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/dnmfarrell%2FDevel-DidYouMean/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/dnmfarrell","download_url":"https://codeload.github.com/dnmfarrell/Devel-DidYouMean/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/dnmfarrell%2FDevel-DidYouMean/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":271400259,"owners_count":24752830,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","status":"online","status_checked_at":"2025-08-20T02:00:09.606Z","response_time":69,"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":[],"created_at":"2024-11-16T02:23:52.189Z","updated_at":"2025-12-12T02:42:14.364Z","avatar_url":"https://github.com/dnmfarrell.png","language":"Perl","funding_links":[],"categories":[],"sub_categories":[],"readme":"=pod\n\n=encoding UTF-8\n\n=head1 NAME\n\nDevel::DidYouMean - Intercepts failed function and method calls, suggesting the nearest matching alternative.\n\n=head1 VERSION\n\nversion 0.05\n\n=head2 SYNOPSIS\n\n    #!/usr/bin/env perl\n\n    # somescript.pl\n    use Data::Dumper;\n    use Devel::DidYouMean;\n\n    print Dumpr($data); # wrong function name\n\n*Run the code*\n\n    $ somescript.pl\n    Undefined subroutine \u0026main::Dumpr called at somescript.pl line 7.\n    Did you mean Dumper?\n\nOr as a one liner:\n\n    $ perl -MData::Dumper -MDevel::DidYouMean -e 'print Dumpr($data)'\n    Undefined subroutine \u0026main::Dumpr called at -e line 1.\n    Did you mean Dumper?\n\nOr trap the error and extract the matching subs\n\n    use Devel::DidYouMean;\n    use Try::Tiny;\n\n    try\n    {\n        sprintX(\"\", $text); # boom\n    }\n    catch\n    {\n        my $error_msg = $_;\n        my @closest_matching_subs = @$Devel::DidYouMean::DYM_MATCHING_SUBS;\n\n        # do something cool here\n    }\n\n=head2 DESCRIPTION\n\nL\u003cDevel::DidYouMean\u003e intercepts failed function and method calls, suggesting the nearest matching available subroutines in the context in which the erroneous function call was made.\n\n=head2 THANKS\n\nThis module was inspired by Yuki Nishijima's Ruby gem L\u003cdid_you_mean|https://github.com/yuki24/did_you_mean\u003e.\n\nChapter 9 \"Dynamic Subroutines\" in L\u003cMastering Perl|http://shop.oreilly.com/product/0636920012702.do\u003e second edition by brian d foy was a vital reference for understanding Perl's symbol tables.\n\ntipdbmp on L\u003creddit|http://www.reddit.com/r/perl/comments/2kw4g9/implementing_did_you_mean_in_perl/\u003e for pointing me in the direction of signal handling instead of the previous AUTOLOAD approach.\n\n=head2 SEE ALSO\n\nL\u003cSymbol::Approx::Sub\u003e is a similar module that catches invalid subroutine names and then executes the nearest matching subroutine it can find. It does not export AUTOLOAD to all namespaces in the symbol table.\n\nMark Jason Dominus' 2014 !!Con L\u003ctalk|http://perl.plover.com/yak/HelpHelp/\u003e and 2008 blog L\u003cpost|http://blog.plover.com/prog/perl/Help.pm.html\u003e about a similar function.\n\n=head1 AUTHOR\n\nDavid Farrell \u003csillymoos@cpan.org\u003e\n\n=head1 COPYRIGHT AND LICENSE\n\nThis software is copyright (c) 2014 by David Farrell.\n\nThis is free software; you can redistribute it and/or modify it under\nthe same terms as the Perl 5 programming language system itself.\n\n=cut\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fdnmfarrell%2Fdevel-didyoumean","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fdnmfarrell%2Fdevel-didyoumean","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fdnmfarrell%2Fdevel-didyoumean/lists"}