{"_id":"@bcowgi11/perljs","_rev":"4-f40311d8e893a7d174f6e5e677827181","name":"@bcowgi11/perljs","dist-tags":{"latest":"0.3.10"},"versions":{"0.3.7":{"private":false,"name":"@bcowgi11/perljs","main":"index.js","version":"0.3.7","engines":{"node":">=0.10.0"},"homepage":"https://github.com/bcowgill/perljs","author":{"name":"Brent S.A. Cowgill","email":"zardozcs@gmail.com","url":"http://github.com/bcowgill"},"description":"Perl for Javascript. Just some functions that a perl developer misses in Javascript.","scripts":{"usage":"pnpm run; grunt --help","check":"npm-check --color-always || true","preprettier":"pnpm run prettier:json","prettier":"pnpm run prettier:code","prettier:code":"prettier --write Gruntfile.js $SRC $TESTS","prettier:json":"prettier --write --parser json *.json .*.json","rawprettier":"prettier --no-semi --single-quote --trailing-comma all --use-tabs --tab-width 4 --write $SRC $TESTS","eslint":"eslint --cache --report-unused-disable-directives Gruntfile.js $SRC $TESTS","eslint:fix":"pnpm run eslint -- --fix","eslint:context":"pnpm run eslint -- --format codeframe","htmllint":"htmllint $TESTS/**/*.html","stylelint":"stylelint --cache --report-needless-disables --report-invalid-scope-disables --report-descriptionless-disables --formatter verbose scripts/**/*.css","stylelint:fix":"stylelint --cache scripts/**/*.css --fix","prelint:fix":"pnpm run stylelint:fix","lint:fix":"pnpm run eslint:fix","lint":"grunt lint","test":"grunt","test:tap":"mocha --reporter tap","travis":"nyc --reporter lcovonly mocha","watch":"grunt watch","develop":"grunt all watch --force","strip":"./scripts/strip.js","prebuild":"pnpm run strip","build":"grunt all","doc":"pnpm run docs","docs":"jsdoc --configure jsdoc.conf.json --destination doc --recurse test/*.js lib/perl.js Gruntfile.js README.md","cover":"nyc grunt test","coverage":"nyc grunt test","coveralls":"nyc --check-coverage grunt test","cover:testcss":"nyc grunt test","postcover":"cp scripts/coverage/*.css doc/coverage","postcoverage":"npm run postcover","postcoveralls":"npm run postcover","postcover:testcss":"cp scripts/coverage/*.css scripts/coverage/*.html doc/coverage","cover-view":"chromium-browser doc/coverage/index.html","coverage-view":"chromium-browser doc/coverage/index.html","doc-view":"chromium-browser doc/index.html","docs-view":"chromium-browser doc/index.html","edit":"subl Gruntfile.js `find lib/ test/ -type f`","_postinstall":"husky install","preversion":"./scripts/pre-version.sh","version":"./scripts/version.sh","prepublish":"./scripts/pre-publish.sh","prepublishOnly":"pinst --disable","postpublish":"./scripts/post-publish.sh"},"repository":{"type":"git","url":"git+https://github.com/bcowgill/perljs.git"},"keywords":["perl","single-quote","double-quote","quote-words","key-value-reverse","array-lookup","string-repeat"],"license":{"type":"Unlicense","url":"http://unlicense.org/"},"bugs":{"url":"https://github.com/bcowgill/perljs/issues"},"devDependencies":{"abbrev":"^1.1.1","async":"^3.2.0","bower":"^1.8.12","chai":"4.3.0","coveralls":"^3.1.0","escodegen":"^2.0.0","eslint":"^7.20.0","grunt":"^1.3.0","grunt-contrib-clean":"^2.0.0","grunt-contrib-concat":"^1.0.1","grunt-contrib-connect":"^3.0.0","grunt-contrib-jshint":"^3.0.0","grunt-contrib-uglify":"^5.0.0","grunt-contrib-watch":"^1.1.0","grunt-eslint":"^23.0.0","grunt-htmllint":"^0.3.0","grunt-jsdoc":"^2.4.1","grunt-mocha-chai-sinon":"0.0.9","grunt-mocha-istanbul":"^5.0.1","grunt-prettier":"^2.1.0","grunt-stylelint":"^0.16.0","handlebars":"^4.7.7","htmllint":"0.7.2","htmllint-cli":"^0.0.7","husky":"^5.1.1","istanbul":"^0.4.3","jsdoc":"^3.6.6","mkdirp":"^1.0.4","mocha":"8.3.0","nopt":"^5.0.0","npm-check":"^5.9.2","nyc":"^15.1.0","pinst":"^2.1.6","prettier":"^2.2.1","stylelint":"^13.11.0","stylelint-config-standard":"^20.0.0","uncommentify":"^0.1.1"},"gitHead":"958d8d357937bb296ad75a3d68b17520a05a8d6a","_id":"@bcowgi11/perljs@0.3.7","_nodeVersion":"12.19.0","_npmVersion":"7.5.6","dist":{"integrity":"sha512-AjpTMOq0EjAMd+yjH5ydYO4SrDsX36VMZBgeKfKMFaJM8z3pvo9jFOkTtn69ysvrjlQz2kaoCs34kXybj3RLqw==","shasum":"9ae774e88c1920de942020b644d6759271c41629","tarball":"https://registry.npmjs.org/@bcowgi11/perljs/-/perljs-0.3.7.tgz","fileCount":10,"unpackedSize":265573,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJgUzA8CRA9TVsSAnZWagAAD7MQAJEzF+E3X60JwQn5DWqY\nRdTecWsQ2MjhFtiEOrX59rBPgBl6u37+JYKteWvCByi9twHJmh4EtoGupOQP\nknNKEHHQuP04xjU6+uedEvD5KEaJ30CaCu7YVmW6LJQXgamlHAUT31VOR1+9\ndWyVS2G1MSWpxhfxeRkeZ8hitjpu8ilVCaHLZc5pNxaXzy5FNJP2nz9Kq68e\nxZIUPRKoPmlh7GveRZDcQkA73m0kFHwvsGNVL5k8EzZgXydS8uJPv8QBb2Q8\n6CVObPaNR1TMzZnxIFq2zFk6w0gRARW6yHs22MAMsAH+mnKZXzdj1L3iu+DK\nTHPsPQWQaFDeq4tYeLSk2bNGPPfM5LOFWb+VEn+gVvgtT7Opgq1bM823k63V\nk1hRyl5aUQOSf0YiaiDiNEHmOF+E99Eridh8KFPxGt+huBCsH/yL/xngTP+2\n5fNZrgdrCtsR1JVOSpY0neoYNWXVzGlTWCMTCqPXiNgz5PRjyS3AKdMcyXWZ\nsJIef2legljrVrXlB8gEHLA1y288eXhW0XihkYZvzLlgnwAI7EcDfBzyixvm\nXvhpqxyXw8XkT2s3P8nsbWhLuM1OmmjyR4N7tbDcFNBH61SlCsLZYVLP4vBu\nhXOXvED34/vS9siqHBOVQ+ZRqZhRX7bV/d42urOTfGzNAl6J8FtaW23fC2QV\nX+UT\r\n=oIr1\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQDqO5KYboU+c7W97UPh8ieQsftmbSETZJi+mKgT6oEtrgIhAN7qgiJsIzm9dcITYMqp85VY8P6B7EiJypkhtqUW6xHo"}]},"_npmUser":{"name":"bcowgi11","email":"zardozcs@gmail.com"},"directories":{},"maintainers":[{"name":"bcowgi11","email":"zardozcs@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/perljs_0.3.7_1616064571684_0.5063969893096605"},"_hasShrinkwrap":true},"0.3.8":{"private":false,"name":"@bcowgi11/perljs","main":"index.js","version":"0.3.8","engines":{"node":">=0.10.0"},"homepage":"https://github.com/bcowgill/perljs","author":{"name":"Brent S.A. Cowgill","email":"zardozcs@gmail.com","url":"http://github.com/bcowgill"},"description":"Perl for Javascript. Just some functions that a perl developer misses in Javascript.","scripts":{"usage":"pnpm run; grunt --help","check":"npm-check --color-always || true","preprettier":"pnpm run prettier:json","prettier":"pnpm run prettier:code","prettier:code":"prettier --write Gruntfile.js $SRC $TESTS","prettier:json":"prettier --write --parser json *.json .*.json","rawprettier":"prettier --no-semi --single-quote --trailing-comma all --use-tabs --tab-width 4 --write $SRC $TESTS","eslint":"eslint --cache --report-unused-disable-directives Gruntfile.js $SRC $TESTS","eslint:fix":"pnpm run eslint -- --fix","eslint:context":"pnpm run eslint -- --format codeframe","htmllint":"htmllint $TESTS/**/*.html","stylelint":"stylelint --cache --report-needless-disables --report-invalid-scope-disables --report-descriptionless-disables --formatter verbose scripts/**/*.css","stylelint:fix":"stylelint --cache scripts/**/*.css --fix","prelint:fix":"pnpm run stylelint:fix","lint:fix":"pnpm run eslint:fix","lint":"grunt lint","test":"grunt","test:tap":"mocha --reporter tap","travis":"nyc --reporter lcovonly mocha","travis:trace":"NODE_OPTIONS=--trace-warnings nyc --reporter lcovonly mocha","watch":"grunt watch","develop":"grunt all watch --force","strip":"./scripts/strip.js","prebuild":"pnpm run strip","build":"grunt all","doc":"pnpm run docs","docs":"jsdoc --configure jsdoc.conf.json --destination doc --recurse test/*.js lib/perl.js Gruntfile.js README.md","cover":"nyc grunt test","coverage":"nyc grunt test","coveralls":"nyc --check-coverage grunt test","cover:testcss":"nyc grunt test","postcover":"cp scripts/coverage/*.css doc/coverage","postcoverage":"npm run postcover","postcoveralls":"npm run postcover","postcover:testcss":"cp scripts/coverage/*.css scripts/coverage/*.html doc/coverage","cover-view":"chromium-browser doc/coverage/index.html","coverage-view":"chromium-browser doc/coverage/index.html","doc-view":"chromium-browser doc/index.html","docs-view":"chromium-browser doc/index.html","edit":"subl Gruntfile.js `find lib/ test/ -type f`","_postinstall":"husky install","preversion":"./scripts/pre-version.sh","version":"./scripts/version.sh","prepublishOnly":"./scripts/pre-publishOnly.sh","postpublish":"./scripts/post-publish.sh"},"repository":{"type":"git","url":"git+https://github.com/bcowgill/perljs.git"},"keywords":["perl","single-quote","double-quote","quote-words","key-value-reverse","array-lookup","string-repeat"],"license":{"type":"Unlicense","url":"http://unlicense.org/"},"bugs":{"url":"https://github.com/bcowgill/perljs/issues"},"devDependencies":{"abbrev":"^1.1.1","async":"^3.2.0","bower":"^1.8.12","chai":"4.3.0","coveralls":"^3.1.0","escodegen":"^2.0.0","eslint":"^7.20.0","grunt":"^1.3.0","grunt-contrib-clean":"^2.0.0","grunt-contrib-concat":"^1.0.1","grunt-contrib-connect":"^3.0.0","grunt-contrib-jshint":"^3.0.0","grunt-contrib-uglify":"^5.0.0","grunt-contrib-watch":"^1.1.0","grunt-eslint":"^23.0.0","grunt-htmllint":"^0.3.0","grunt-jsdoc":"^2.4.1","grunt-mocha-chai-sinon":"0.0.9","grunt-mocha-istanbul":"^5.0.1","grunt-prettier":"^2.1.0","grunt-stylelint":"^0.16.0","handlebars":"^4.7.7","htmllint":"0.7.2","htmllint-cli":"^0.0.7","husky":"^5.1.1","istanbul":"^0.4.3","jsdoc":"^3.6.6","mkdirp":"^1.0.4","mocha":"8.3.0","nopt":"^5.0.0","npm-check":"^5.9.2","nyc":"^15.1.0","pinst":"^2.1.6","prettier":"^2.2.1","stylelint":"^13.11.0","stylelint-config-standard":"^20.0.0","uncommentify":"^0.1.1"},"gitHead":"3a9a7415854c824150d90a6efe09af55c8449ae5","_id":"@bcowgi11/perljs@0.3.8","_nodeVersion":"12.19.0","_npmVersion":"7.5.6","dist":{"integrity":"sha512-pjuqBV7cw3mP6tZRDRaquejZG7yq7axkAbuQ1PpYOWYqzD0RGuELm9uzgdtzLk5gZWWffh13xbqMgO4YCT0bqg==","shasum":"3b4bd5528b05e73da42d5a9029e1b59042ad99a5","tarball":"https://registry.npmjs.org/@bcowgi11/perljs/-/perljs-0.3.8.tgz","fileCount":10,"unpackedSize":266047,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJgU3SWCRA9TVsSAnZWagAATKsQAJEBWTR6YgsNOL8davnR\nOGcwvQ5m3dd1Rr/tE/W0gErcToaxIJNAzVX6V5t3o90a9OSDuYV1QbZWru3Z\nkfg6+OhcTLCzp/jU0R9Xp4ppmjxUza7t12LqSXnV68e6q4B43+MV8t+VLgZQ\nuAlWK9Rmjq7B+zFDZbD0t5yEjvBXgrdtKFqUQx1LaGxRA/9PxRqiRwEWUM/t\nwWbTiY46CHReEMeM7H/wV1OiXOFRPsI6m8pj7CWL86DnBFbdylpqEK+GsxSB\nUaXAKPuRB5EVJ0RCy24y1+WaVqiCuY2+AMCt7Qe6ycrWbjMAX7OQwz0LBUbk\nRovCWmeSgBCeP1tlxiRr13wnwBYc81kyiKx4V28VIcDdY+fSOZdKtZ/xNwO8\nZzKm+r3OZw46VpUoJ0kA9HLHyEOJzKLzcCbkwsGggvm6Nhr8MeUFScd5UxfV\n/16xHU2RiPtyws+AXh34KQet0lOqEou6PJvCgAA5kXfvus0chNuJPGzEnMmW\nXn0Llv7OZLv+LqD/ac9MaVJy0jlwbqDoVge9WyUE83L85Kak+6tpcGuzkCdf\n09hqRD1GOUnmmMft81PtzY085/1MZkLmwcrbSABVPqfyq92ht7B04o/X98F6\ngW6qadKawgfwuDglHI2hKaOy0hitheOTSHmTeWH5Cl/0WOiNO/jD3uc4ysl2\nxghb\r\n=uC3S\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQC4VGk2CEglHfuaFKwvDpjxukkXMSOlGTO/RGtFJIbo8QIhAJtf5ILvGxwUjuD3oLr30rOtwuhBwFa+giXVwhuaPbUL"}]},"_npmUser":{"name":"bcowgi11","email":"zardozcs@gmail.com"},"directories":{},"maintainers":[{"name":"bcowgi11","email":"zardozcs@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/perljs_0.3.8_1616082070016_0.3669189482698032"},"_hasShrinkwrap":true},"0.3.10":{"private":false,"name":"@bcowgi11/perljs","main":"index.js","version":"0.3.10","engines":{"node":">=0.10.0"},"homepage":"https://github.com/bcowgill/perljs","author":{"name":"Brent S.A. Cowgill","email":"zardozcs@gmail.com","url":"http://github.com/bcowgill"},"description":"Perl for Javascript. Just some functions that a perl developer misses in Javascript.","scripts":{"usage":"pnpm run; grunt --help","check":"npm-check --color-always || true","preprettier":"pnpm run prettier:json","prettier":"pnpm run prettier:code","prettier:code":"prettier --write Gruntfile.js $SRC $TESTS","prettier:json":"prettier --write --parser json *.json .*.json","rawprettier":"prettier --no-semi --single-quote --trailing-comma all --use-tabs --tab-width 4 --write $SRC $TESTS","eslint":"eslint --cache --report-unused-disable-directives Gruntfile.js $SRC $TESTS","eslint:fix":"pnpm run eslint -- --fix","eslint:context":"pnpm run eslint -- --format codeframe","htmllint":"htmllint $TESTS/**/*.html","stylelint":"stylelint --cache --report-needless-disables --report-invalid-scope-disables --report-descriptionless-disables --formatter verbose scripts/**/*.css","stylelint:fix":"stylelint --cache scripts/**/*.css --fix","prelint:fix":"pnpm run stylelint:fix","lint:fix":"pnpm run eslint:fix","lint":"grunt lint","test":"grunt","test:tap":"mocha --reporter tap","travis":"nyc --reporter lcovonly mocha","travis:trace":"NODE_OPTIONS=--trace-warnings nyc --reporter lcovonly mocha","watch":"grunt watch","develop":"grunt all watch --force","strip":"./scripts/strip.js","prebuild":"pnpm run strip","build":"grunt all","doc":"pnpm run docs","docs":"jsdoc --configure jsdoc.conf.json --destination doc --recurse test/*.js lib/perl.js Gruntfile.js README.md","cover":"nyc grunt test","coverage":"nyc grunt test","coveralls":"nyc --check-coverage grunt test","postcover":"cp ./node_modules/nyc-dark/*.css doc/coverage","postcoverage":"npm run postcover","postcoveralls":"npm run postcover","cover-view":"chromium-browser doc/coverage/index.html","coverage-view":"chromium-browser doc/coverage/index.html","doc-view":"chromium-browser doc/index.html","docs-view":"chromium-browser doc/index.html","edit":"subl Gruntfile.js `find lib/ test/ -type f`","_postinstall":"husky install","preversion":"./scripts/pre-version.sh","version":"./scripts/version.sh","prepublishOnly":"./scripts/pre-publishOnly.sh","postpublish":"./scripts/post-publish.sh"},"repository":{"type":"git","url":"git+https://github.com/bcowgill/perljs.git"},"keywords":["perl","single-quote","double-quote","quote-words","key-value-reverse","array-lookup","string-repeat"],"license":{"type":"Unlicense","url":"http://unlicense.org/"},"bugs":{"url":"https://github.com/bcowgill/perljs/issues"},"devDependencies":{"abbrev":"^1.1.1","async":"^3.2.0","bower":"^1.8.12","chai":"4.3.4","coveralls":"^3.1.0","escodegen":"^2.0.0","eslint":"^7.20.0","eslint-plugin-unicorn":"^31.0.0","grunt":"^1.3.0","grunt-contrib-clean":"^2.0.0","grunt-contrib-concat":"^1.0.1","grunt-contrib-connect":"^3.0.0","grunt-contrib-jshint":"^3.0.0","grunt-contrib-uglify":"^5.0.0","grunt-contrib-watch":"^1.1.0","grunt-eslint":"^23.0.0","grunt-htmllint":"^0.3.0","grunt-jsdoc":"^2.4.1","grunt-mocha-chai-sinon":"0.0.9","grunt-mocha-istanbul":"^5.0.1","grunt-prettier":"^2.1.0","grunt-stylelint":"^0.16.0","handlebars":"^4.7.7","htmllint":"0.7.2","htmllint-cli":"^0.0.7","husky":"^5.1.1","istanbul":"^0.4.3","jsdoc":"^3.6.6","mkdirp":"^1.0.4","mocha":"8.3.2","mocha-dark":"^8.3.2","nopt":"^5.0.0","npm-check":"^5.9.2","nyc":"^15.1.0","nyc-dark":"^3.0.2","pinst":"^2.1.6","prettier":"^2.2.1","stylelint":"^13.11.0","stylelint-config-standard":"^20.0.0","uncommentify":"^0.1.1"},"gitHead":"108e582ff89dd0f080195eb50a62271e4e3c1a18","_id":"@bcowgi11/perljs@0.3.10","_nodeVersion":"12.19.0","_npmVersion":"7.5.6","dist":{"integrity":"sha512-SgBCXXupLk/eLmuVYsgF1UOGexE1pQLJCh3NafLaDLwWZiyWSJue8bimI5o1G/wjHkhzhDPjfm7wui+xUR6MNg==","shasum":"adc36e86288d4708f683ded3c6091ac0248f659f","tarball":"https://registry.npmjs.org/@bcowgi11/perljs/-/perljs-0.3.10.tgz","fileCount":10,"unpackedSize":278949,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJgloYsCRA9TVsSAnZWagAADoEP/0/K72IlvUx7HXRdLTlC\nPslSvsvs+XiPSaD0XbE2i1IJurvkO0y6QgTAGQURZUDFW0nu8mrCeGuGWCFL\ntrzbxoXHGt6dDp/IBg9nNuvsY5X0kGm4N5hZcLbxbb5t90rqQnchWRUrnv10\nEWGFGRSHy1NSReV9mivTJsLoA49t7COguqYBTo7Ue/Jv1MJFc+o2H8WF6pET\nCr1bPU9u7+6vRUUhueNg/AeW177vtYg5oZqnZ/vMKYFPtKD34Y3YAxU/jTJ7\nwl7JMHppQr/SydhhJ71vOIBfzim4Zoc2BZJ+eU3LBm+KtwbohMSdCH5otgMZ\nRogD2pb79sahrm8dq3YUVBv27qOvfuBg573VX3QJ7e+IBNqGEZBCawupuPLE\ncmCODgiPmhRPksIpU96JOaPL/Vhw5Rf0rKxiv5dijvXVhnb7FaPFf8z0BeNI\neftw3yIYIn+nPddHQTRTstuF6Ov7twOJUPIrI9YbX6OJMwOErrEm7P5NOKp9\nmwyl3Ac6oCjVb77TV/TgGdgPPSAYPO83LIadxO1AY5lgQTi7tOtKwxoE43CE\n7JgIvWphV5bJew+U6QkMgzBEMHmTdeNREcJGxw3UMJdAiJdOPW8l+XFBmqfT\nYBtLJ0b5xtn6IewWdJ3KAe5aVjl9n+y6LtPDs2R9sdv5oqJwziSe1y8U0eAH\nRsdI\r\n=qy8E\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQD9/X+5ujk6zlo7K9LlcNk+XIHA0pgsU3BXd0Pd+L4HMwIgSCcMrzSz1Jqdkq8X3//RT/ej8C//gix/t/+hYtN2F0U="}]},"_npmUser":{"name":"bcowgi11","email":"zardozcs@gmail.com"},"directories":{},"maintainers":[{"name":"bcowgi11","email":"zardozcs@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/perljs_0.3.10_1620477483849_0.9957798117086545"},"_hasShrinkwrap":true}},"time":{"created":"2021-03-18T10:49:31.642Z","0.3.7":"2021-03-18T10:49:31.813Z","modified":"2022-04-04T18:02:16.488Z","0.3.8":"2021-03-18T15:41:10.199Z","0.3.10":"2021-05-08T12:38:04.028Z"},"maintainers":[{"name":"bcowgi11","email":"zardozcs@gmail.com"}],"description":"Perl for Javascript. Just some functions that a perl developer misses in Javascript.","homepage":"https://github.com/bcowgill/perljs","keywords":["perl","single-quote","double-quote","quote-words","key-value-reverse","array-lookup","string-repeat"],"repository":{"type":"git","url":"git+https://github.com/bcowgill/perljs.git"},"author":{"name":"Brent S.A. Cowgill","email":"zardozcs@gmail.com","url":"http://github.com/bcowgill"},"bugs":{"url":"https://github.com/bcowgill/perljs/issues"},"license":{"type":"Unlicense","url":"http://unlicense.org/"},"readme":"perljs ![perljs's Hits](https://hitcounter.pythonanywhere.com/count/tag.svg?url=https://github.com/bcowgill/perljs) [![Build Status](https://travis-ci.org/bcowgill/perljs.svg?branch=master)](https://travis-ci.org/bcowgill/perljs) [![Coverage Status](https://coveralls.io/repos/github/bcowgill/perljs/badge.svg?branch=master)](https://coveralls.io/github/bcowgill/perljs?branch=master) ![GitHub last commit](https://img.shields.io/github/last-commit/bcowgill/perljs)\n======\n\nPerl for Javascript. Just some functions that a perl developer misses in Javascript.\n\nWorks with browsers and node v0.10.0+\n\n## Quick Usage\n\n```javascript\n\n\tvar perl = require('perljs')\n\t   q = perl.q, // single quote a string/array/object\n\t   qq = perl.qq, // double quote a string/array/object\n\t   qw = perl.qw, // quote words -- convert string to array on word boundaries\n\t   x = perl.x, // string multiply -- repeat string N times\n\t   name = 'perl rocks the javascript world';\n\n\tconsole.log('q', q(name), 'qq', qq(name), 'qw', qw(name), 'x', x(name + '\\n', 3));\n```\n\n`q` and `qq` behave differently from perl, they single or double quote strings.\n\n`qw` is similar to perl's quote words, it splits strings into arrays based on word boundaries.\n\n`x` behaves like perl's `x` operater to repeat strings a number of times.\n\nFull usage documentation is available in `doc/`\n\n## Motivation\n\nIn addition to providing some useful functions which are available in perl but not Javascript, this project exists to learn about publishing modules, tools for linting and testing code as well as integration with Travis and other open source tools.\n\n## Installation\n\n```bash\n\tnpm install perljs --save # or use yarn or pnpm\n```\n\nor get it all\n\n```bash\n\tgit clone https://github.com/bcowgill/perljs.git\n```\n\n## Perl Goodness Presently Supported\n\n```javascript\n\n\tq('what') => \"'what'\"\n\n\tqq('what') => '\"what\"'\n\tqq('what', '@') => '@what@'\n\tqq('what', '<', '>') => '<what>'\n\n\tqw('this is it') => ['this', 'is', 'it']\n\n\tx('=', 76) => 76 equal signs in a row\n\n\tqqA(['this', 'is', 'it']) => ['\"this\"', '\"is\"', '\"it\"']\n\tqqA(['this', 'is', 'it'], '@') => ['@this@', '@is@', '@it@']\n\tqqO({ 'key1': 'value1', 'key2': 'value2' }) => { 'key1': '\"value1\"', 'key2': '\"value2\"' }\n\tqqO({ 'key1': 'value1', 'key2': 'value2' }, '<', '>') => { 'key1': '<value1>', 'key2': '<value2>' }\n\n\t// my %Map = qw( key1 value1 key2 value2 );\n\tqwm('key1 value1 key2 value2') => { 'key1': 'value1', 'key2': 'value2' }\n\n\tmapFromArray() - does the same for an array instead of a string.\n\n\t// my %Map = map { ( $ARG, 1 ) } @Array;\n\tmakeMap(['key1', 'key2']); => { 'key1': true, 'key2': true }\n\n\t// my %ReverseMap = map { ($Map{$ARG}, $ARG) } keys(%Map)\n\treverseMap({ 'inch': 1, 'foot': 12 }) => { '1': 'inch', '12': 'foot' }\n```\n\n## Full Documentation\n\nIs available in the `doc` dir and can be generated:\n\n```bash\n\n\tpnpm run doc\n\tpnpm run doc-view\n```\n\n## Tests\n\nFor perlish test output:\n\n```bash\n\tbash\n\tsource env.local\n\tpnpm test:tap\n\t# or\n\tprove scripts/tap-test.sh\n```\n\nWhich shows output as TAP -- [Test Anywhere Protocol](http://testanything.org/)\n\nOr more javascripty test output:\n\n```bash\n\n\tpnpm test\n```\n\nWhich will prettify and lint the source as well as run the tests.\n\nCoverage output will be shown and is available in `doc/coverage/index.html`\n\n## Development\n\n```bash\n\n\tbash\n\tsource env.local\n\tpnpm run usage\n```\n\nTo see additional pnpm and grunt targets like watch or develop\n\n## Contributing ![perljs's Contributors Image](https://contrib.rocks/image?repo=bcowgill/perljs)\n\nThe existing coding style is maintained by the use of [prettier](https://www.npmjs.com/package/prettier) as part of the check in process using [husky](https://www.npmjs.com/package/husky).\nAdd unit tests for any new or changed functionality. Lint and test your code using the supplied npm targets.\nReview the test coverage output to ensure you've tested whatever has been added.\n\nSee CONTRIBUTING.md for further details.\n\n## License\n\nThe Unlicense\n\nA license with no conditions whatsoever which dedicates works to the public domain. Unlicensed works, modifications, and larger works may be distributed under different terms and without source code.\n\n## Stats\n\n![perljs's Stats](https://github-readme-stats.vercel.app/api?username=bcowgill&show_icons=true) ![perljs's Languages](https://github-readme-stats.vercel.app/api/top-langs/?username=bcowgill&theme=blue-green)\n\n## Release History\n\n* 0.1.0 Initial release q qq qw x - go forth and perlize.\n* 0.2.1 Release some (hash) mapping functions mapFromArray(), makeMap() and reverseMap().\n* 0.2.2 Create some release management scripts.\n* 0.3.0 Made browser compatible as AMD or global and bower.json for bower packaging.\n* 0.3.1 Made browser compatible as CommonJS/AMD or global and bower.json for bower packaging (private: false).\n* 0.3.2 slight bower.json ignore change.\n* 0.3.3 test of npm version command tooling.\n* 2020-10-24 not released - updated all modules and switched to pnpm.\n* internal - 0.3.4 patch after toolchain updated 2021: test of npm version but had an issue.\n* internal - 0.3.5 patch after toolchain updated 2021: husky, nyc, prettier, eslint, stylelint, htmllint, mocha-dark internally, nyc-dark internally.\n* internal - 0.3.6 patch documentation rebuild for release failed release due to username.\n* 0.3.7 patch corrected npm user name for release.\n* 0.3.8 patch prepublishOnly script fixed for TravisCI\n* 0.3.9 patch Using nyc-dark, mocha-dark externally, Evaluating eslint-plugin-unicorn\n* 0.3.10 patch Re-relese bump as previous bump failed to pass Travis\n","readmeFilename":"README.md","users":{"bcowgi11":true}}