{"id":26859708,"url":"https://github.com/lvmalware/iperl","last_synced_at":"2025-05-06T15:28:34.436Z","repository":{"id":117505810,"uuid":"272219049","full_name":"LvMalware/iperl","owner":"LvMalware","description":"Run Perl interactively","archived":false,"fork":false,"pushed_at":"2022-04-10T15:49:03.000Z","size":848,"stargazers_count":10,"open_issues_count":0,"forks_count":0,"subscribers_count":2,"default_branch":"master","last_synced_at":"2025-03-31T01:29:39.171Z","etag":null,"topics":["interactive","interpreter","perl","programming","repl","script"],"latest_commit_sha":null,"homepage":"","language":"Perl","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"gpl-3.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/LvMalware.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":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null}},"created_at":"2020-06-14T14:31:07.000Z","updated_at":"2024-09-02T22:36:10.000Z","dependencies_parsed_at":"2024-01-31T10:09:17.591Z","dependency_job_id":null,"html_url":"https://github.com/LvMalware/iperl","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/LvMalware%2Fiperl","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/LvMalware%2Fiperl/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/LvMalware%2Fiperl/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/LvMalware%2Fiperl/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/LvMalware","download_url":"https://codeload.github.com/LvMalware/iperl/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":252712578,"owners_count":21792340,"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":["interactive","interpreter","perl","programming","repl","script"],"created_at":"2025-03-31T01:29:43.053Z","updated_at":"2025-05-06T15:28:34.400Z","avatar_url":"https://github.com/LvMalware.png","language":"Perl","readme":"# IPerl\n\u003e Interactive Perl interpreter\n\nThis is a simple REPL (Read, Execute, Print, Loop) script that aims to provide an easy and fun way to run an interactive Perl interpreter.\n\n## Dependencies\n- JSON\n\u003e user@pc:~$ cpan JSON\n- Term::ReadKey\n\u003e user@pc:~$ cpan Term::ReadKey\n## Installation\n\nOS X \u0026 Linux:\n\n```bash\ngit clone https://github.com/lvmalware/iperl \u0026\u0026 \\\ncd iperl \u0026\u0026 \\\nsudo ./install.sh\n```\n\nWindows:\n\nSwitch to Linux and try the method above :)\n\n## Usage\n\n![showcase](https://user-images.githubusercontent.com/37661824/127336208-18fb984b-e17a-4c61-b10e-e39b9d0c834d.gif)\n\n\n## Some cool modules\n\nModules can be found [here](https://github.com/LvMalware/iperl_modules)\n\nTo install them:\n\n1. clone the repository\n\n```bash\ngit clone https://github.com/LvMalware/iperl_modules\n```\n\n2. add their path to the config file\n\nAssuming you have a configuration file your $HOME directory, modify the value of 'path':\n\n```JSON\n{\n    \"history\" : \"/home/lva/.iperl_history\",\n    \"prompt\"  : \"IPerl\",\n    \"path\"    : [\"/usr/share/iperl/modules\", \"add_your_path_here\"]\n}\n\n```\n\n## Writting and deploying your modules\n\nWrite a standart Perl module, like the following Example.pm:\n\n```perl\npackage Example;\nuse base 'Exporter';\nour @EXPORT = qw(test_func1 test_func2);\n\nsub test_func1\n{\n    ...\n}\n\nsub test_func2\n{\n    ...\n}\n```\n\nCopy your module to any location already on the path (configured on your config file) or add its location to the path as shown above.\n\n## use vs. loadModule\n\nThe release 1.1.1 introduced the loadModule() function that can be used (as the name sugests) to load the contents of a module into the current running instance of IPerl.\n\nloadModule() can be used only inside the interactive interpreter and does basically the same as 'use', but with the difference that it will automatically add all the exported names from the loaded module to the completion list, allowing these names to be sugested and completed by typing their first letters and pressing tab.\n\nBesides that, there is no advantage in using loadModule() instead of 'use' to load modules.\n\n## Latest updates\n\n### Version 1.2.1\n- Fixed issues with IPerl::Term\n\n### Version 1.2\n- Added syntax highlight\n- Removed dependence on Term::ReadLine::Gnu (replaced by IPerl::Term)\n- Added key-binding capabilities\n\n### Version 1.1.1\n- Added support for config file in JSON format\n- Added a loadModule() function. Modules loaded through loadModule() have their exported names automatically added to the completion list\n- Default modules can be specified through the config file\n\n### Version 1.1\n- Added an install.sh for easy installation within unix-like systems\n- Moved execution context away from IPerl's code scope to avoid conflicts\n- Added support for custom modules (need to be expanded ...)\n\n## TODO list\n\n- Add more custom modules\n- Allow editing multi-line code\n- Improve multi-line code support\n- Fix any bugs that may appear within IPerl::Term\n\n## Meta\n\nLucas V. Araujo – lucas.vieira.ar@disroot.org\n\nDistributed under the GNU GPL-3.0+ license. See ``LICENSE`` for more information.\n\n[https://github.com/LvMalware/iperl](https://github.com/LvMalware/)\n\n## Contributing\n\n1. Fork it (\u003chttps://github.com/LvMalware/iperl/fork\u003e)\n2. Create your feature branch (`git checkout -b feature/fooBar`)\n3. Commit your changes (`git commit -am 'Add some fooBar'`)\n4. Push to the branch (`git push origin feature/fooBar`)\n5. Create a new Pull Request\n","funding_links":[],"categories":[],"sub_categories":[],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Flvmalware%2Fiperl","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Flvmalware%2Fiperl","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Flvmalware%2Fiperl/lists"}