{"id":13723408,"url":"https://github.com/forcedotcom/PerlKoans","last_synced_at":"2025-05-07T16:32:57.519Z","repository":{"id":3542792,"uuid":"4602889","full_name":"forcedotcom/PerlKoans","owner":"forcedotcom","description":null,"archived":true,"fork":false,"pushed_at":"2022-02-12T08:34:21.000Z","size":118,"stargazers_count":52,"open_issues_count":12,"forks_count":15,"subscribers_count":8,"default_branch":"master","last_synced_at":"2024-11-14T12:51:21.536Z","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":"playframework/anorm","license":"bsd-3-clause","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/forcedotcom.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":"CODEOWNERS","security":null,"support":null}},"created_at":"2012-06-08T22:15:09.000Z","updated_at":"2024-06-15T04:45:56.000Z","dependencies_parsed_at":"2022-08-20T19:50:51.079Z","dependency_job_id":null,"html_url":"https://github.com/forcedotcom/PerlKoans","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/forcedotcom%2FPerlKoans","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/forcedotcom%2FPerlKoans/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/forcedotcom%2FPerlKoans/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/forcedotcom%2FPerlKoans/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/forcedotcom","download_url":"https://codeload.github.com/forcedotcom/PerlKoans/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":252915562,"owners_count":21824597,"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","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-08-03T01:01:40.891Z","updated_at":"2025-05-07T16:32:52.509Z","avatar_url":"https://github.com/forcedotcom.png","language":"Perl","funding_links":[],"categories":["Languages"],"sub_categories":["Other Languages"],"readme":"Perl::Koans\n===========\n\na framework to learn-by-doing for Perl, with a heavy emphasis on testing\n\ntl;dr: run road_to_illumination.pl, fix test failures specified, repeat until all tests pass\n\nprerequisites\n=============\n\n* Perl::Koans - https://github.com/forcedotcom/PerlKoans/blob/freeze/PerlKoans-latest.tar.gz?raw=true (0.50) \n* Perl 5.8.8+\n  - Almost all Unix/Linux and OSX machines will already have Perl, confirm with 'perl -v'\n  - If you're using Windows, http://www.strawberryperl.com\n\n* ~/PerlKoans/  - don't actually need it to be this path, but this is default\n\nto confirm your environment is working:  \n    conor@box $ perl -c road\\_to\\_illumination.pl  \n    road_to_illumination.pl syntax OK  \n\ninstructions\n============\n\nto get started:\n\n    * run 'perl road_to_illumination.pl', which calls each koan (about_*.pl) in order. you should see something like:\n\n    1.    $ perl road_to_illumination.pl\n    2.    not ok 1 - 1 is equal to itself\n    3.    #   Failed test '1 is equal to itself'\n    4.    #   at about_koans.pl line 15.\n    5.    #          got: '1'\n    6.    #     expected: '2'\n    7.    XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX_____________ 1/266\n    8.    Bail out!  he who asks a question is a fool for a minute; he who does not remains a fool forever\n\n    so you won't actually see the line numbers, but they're useful in explaining what's going on:\n\n    line 2 - provides test result 'not ok', test count '1', and test name '1 is equal to itself'\n    line 3 - provides a more human friendly representation of line 1\n    line 4 - provides the file and line number of the failing test\n    line 7 - displays your progression through the Koans\n    line 8 - some (hopefully) inspirational sayings\n\n    * now that you know which test is failing, and in which koan that test lives, go fix the test -- repeat until all tests pass:\n\nPerl::Koans uses the string '__' to indicate where you should fill in your code, typically a value or variable.\n\n  * for example, if you see:\n        is (1, \\__, \"1 is equal to itself test\");\n        \n  * to pass the test, you would fill in '1':\n        is (1, 1, \"1 is equal to itself test\");\n\nin other cases, you may see a failing test without the '__', but the intent is the same: fix the test.\n\n  * for example, if you see:\n        is (1, 2, \"1 is equal to itself test\");\n        \n  * pass the test by replacing the 'expected' value to '1':\n        is (1, 1, \"1 is equal to itself test\");\n\nPerl::Koans provides some anchors for where you should be looking to fix tests:\n\n    ################\n    # your code goes below this line\n\n\n    # your code goes above this line\n    ################\n\nyou can walk the road (i.e. fix tests) in whatever editor you choose, here are a few suggestions:\n\n    * Windows - Notepad++, Eclipse\n    * Unix    - GEdit, Eclipse, vim\n    * OS X    - Text Wrangler, Eclipse, vim\n\nKomodo Edit is another option, available for all platforms\n\nTest::More\n==========\n\ntests aren't just used in 'if' statements!\n\nTest::More is the de facto standard framework for testing in Perl.\n\nthe functions used in Perl::Koans:\n\n    * is(\u003cgot\u003e, \u003cexpected\u003e, \u003ctestname\u003e) - successful if \u003cgot\u003e is equal to \u003cexpected\u003e \n    * ok(\u003cvalue\u003e, \u003ctestname\u003e) - successful if \u003cvalue\u003e is true\n    * like(\u003cgot\u003e, \u003cregular_expression\u003e, \u003ctestname\u003e) - successful if \u003cgot\u003e matches \u003cregular_expression\u003e\n\n\ncredits\n=======\n\nrubykoans.com\n\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fforcedotcom%2FPerlKoans","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fforcedotcom%2FPerlKoans","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fforcedotcom%2FPerlKoans/lists"}