{"id":15017360,"url":"https://github.com/mklement0/whichpm","last_synced_at":"2025-04-09T19:42:27.089Z","repository":{"id":52144368,"uuid":"41753422","full_name":"mklement0/whichpm","owner":"mklement0","description":"Locates installed Perl modules.","archived":false,"fork":false,"pushed_at":"2023-04-16T18:11:46.000Z","size":129,"stargazers_count":21,"open_issues_count":3,"forks_count":8,"subscribers_count":3,"default_branch":"master","last_synced_at":"2025-03-23T21:45:41.459Z","etag":null,"topics":["cli","directories","discovery","filesystem","filesystem-path","folders","module","perl5","unix","windows"],"latest_commit_sha":null,"homepage":null,"language":"Perl","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/mklement0.png","metadata":{"files":{"readme":"README.md","changelog":"CHANGELOG.md","contributing":null,"funding":null,"license":"LICENSE.md","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null}},"created_at":"2015-09-01T17:37:00.000Z","updated_at":"2023-10-22T08:01:57.000Z","dependencies_parsed_at":"2023-01-31T03:32:19.299Z","dependency_job_id":null,"html_url":"https://github.com/mklement0/whichpm","commit_stats":null,"previous_names":[],"tags_count":11,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/mklement0%2Fwhichpm","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/mklement0%2Fwhichpm/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/mklement0%2Fwhichpm/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/mklement0%2Fwhichpm/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/mklement0","download_url":"https://codeload.github.com/mklement0/whichpm/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":247648975,"owners_count":20972945,"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":["cli","directories","discovery","filesystem","filesystem-path","folders","module","perl5","unix","windows"],"created_at":"2024-09-24T19:50:21.440Z","updated_at":"2025-04-09T19:42:27.066Z","avatar_url":"https://github.com/mklement0.png","language":"Perl","funding_links":[],"categories":[],"sub_categories":[],"readme":"[![npm version](https://img.shields.io/npm/v/whichpm.svg)](https://npmjs.com/package/whichpm) [![license](https://img.shields.io/npm/l/whichpm.svg)](https://github.com/mklement0/whichpm/blob/master/LICENSE.md)\n\n\u003c!-- START doctoc generated TOC please keep comment here to allow auto update --\u003e\n\u003c!-- DON'T EDIT THIS SECTION, INSTEAD RE-RUN doctoc TO UPDATE --\u003e\n\n**Contents**\n\n- [whichpm \u0026mdash; introduction](#whichpm-\u0026mdash-introduction)\n- [Examples](#examples)\n- [Installation](#installation)\n  - [Installation from the npm registry](#installation-from-the-npm-registry)\n  - [Manual installation (macOS and Linux)](#manual-installation-macos-and-linux)\n- [Usage](#usage)\n- [License](#license)\n  - [Acknowledgements](#acknowledgements)\n  - [npm dependencies](#npm-dependencies)\n- [Changelog](#changelog)\n\n\u003c!-- END doctoc generated TOC please keep comment here to allow auto update --\u003e\n\n# whichpm \u0026mdash; introduction\n\n`whichpm` is a cross-platform CLI that locates installed [Perl](https://www.perl.org/) modules,\nand optionally reports information about them, including detection of accidental duplicates.\n\nAnalogous to how the common `which` Unix utility locates binaries by their filename,\n`whichpm` locates Perl modules by their module (package) name.\n\n# Examples\n\n```nohighlight\n# Locate the Data::Dumper module.\n$ whichpm Data::Dumper\n/usr/lib/perl/5.18/Data/Dumper.pm\n\n# Locate the Data::Dumper module, and also print\n# version information and core-module status.\n$ whichpm -v Data::Dumper\nData::Dumper    2.145   core\u003e=5.005 /usr/lib/perl/5.18/Data/Dumper.pm\n\n# Locate the Data::Dumper module and open it in your system's default text\n# editor.\n$ whichpm -e Data::Dumper\n\n# Look for accidental duplicates of the Foo::Bar module.\n# Normally, only 1 path should be returned.\n$ whichpm -a Foo::Bar\n/usr/lib/perl/5.18/Foo/Bar.pm\n./Foo/Bar.pm\n\n# Print the paths of all installed modules.\n$ whichpm -a\n\n```\n\n# Installation\n\n**Supported platforms and prerequisites**\n\n**Linux**, **macOS**, and **Windows**, with **Perl v5.4.50 or higher** installed.\n\n## Installation from the npm registry\n\n\u003csup\u003eNote: Even if you don't use Node.js, its package manager, `npm`, works across platforms and is easy to install with [`curl -L http://git.io/n-install | bash`](https://github.com/mklement0/n-install)\u003c/sup\u003e\n\nWith [Node.js](http://nodejs.org/)installed, install [the package](https://www.npmjs.com/package/whichpm) as follows:\n\n    [sudo] npm install whichpm -g\n\n**Note**:\n\n* Whether you need `sudo` depends on how you installed Node.js and whether you've [changed permissions later](https://docs.npmjs.com/getting-started/fixing-npm-permissions); if you get an `EACCES` error, try again with `sudo`.\n* The `-g` ensures [_global_ installation](https://docs.npmjs.com/getting-started/installing-npm-packages-globally) and is needed to put `whichpm` in your system's `$PATH`.\n\n## Manual installation (macOS and Linux)\n\n* Download [the CLI](https://raw.githubusercontent.com/mklement0/whichpm/stable/bin/whichpm) as `whichpm`.\n* Make it executable with `chmod +x whichpm`.\n* Move it or symlink it to a folder in your `$PATH`, such as `/usr/local/bin` (macOS) or `/usr/bin` (Linux).\n\n# Usage\n\nFind brief usage information below; for complete documentation, run `whichpm --man` or read the [manual online](doc/whichpm.md).\n\n\u003c!-- DO NOT EDIT THE FENCED CODE BLOCK and RETAIN THIS COMMENT: The fenced code block below is updated by `make update-readme/release` with CLI usage information. --\u003e\n\n```nohighlight\n$ whichpm --help\n\n\nPrints the filesystem paths of the specified Perl modules, if installed.\n\n    whichpm    [-v] [-q] [-e] \u003cmodule_name\u003e...\n    whichpm -a [-v] [-q] [-e] [\u003cmodule_name\u003e...]\n\n    -a ... lists all installed module files / all module files matching  \n           the specified name(s) (checks for accidental duplicates)\n    -v ... verbose mode: also prints name, version, core-module status\n    -q ... suppresses warnings\n    -e ... opens modules in default text editor\n\nStandard options: --help, --man, --version, --home\n```\n\n\u003c!-- DO NOT EDIT THE NEXT CHAPTER and RETAIN THIS COMMENT: The next chapter is updated by `make update-readme/release` with the contents of 'LICENSE.md'. ALSO, LEAVE AT LEAST 1 BLANK LINE AFTER THIS COMMENT. --\u003e\n\n# License\n\nCopyright (c) 2020 Michael Klement \u003cmklement0@gmail.com\u003e (http://same2u.net), released under the [MIT license](https://spdx.org/licenses/MIT#licenseText).\n\n## Acknowledgements\n\nThis project gratefully depends on the following open-source components, according to the terms of their respective licenses.\n\n[npm](https://www.npmjs.com/) dependencies below have optional suffixes denoting the type of dependency; the *absence* of a suffix denotes a required *run-time* dependency: `(D)` denotes a *development-time-only* dependency, `(O)` an *optional* dependency, and `(P)` a *peer* dependency.\n\n\u003c!-- DO NOT EDIT THE NEXT CHAPTER and RETAIN THIS COMMENT: The next chapter is updated by `make update-readme/release` with the dependencies from 'package.json'. ALSO, LEAVE AT LEAST 1 BLANK LINE AFTER THIS COMMENT. --\u003e\n\n## npm dependencies\n\n* [doctoc (D)](https://github.com/thlorenz/doctoc)\n* [json (D)](https://github.com/trentm/json)\n* [marked-man (D)](https://github.com/kapouer/marked-man#readme)\n* [replace (D)](https://github.com/ALMaclaine/replace#readme)\n* [semver (D)](https://github.com/npm/node-semver#readme)\n* [urchin (D)](https://git.sdf.org/tlevine/urchin)\n\n\u003c!-- DO NOT EDIT THE NEXT CHAPTER and RETAIN THIS COMMENT: The next chapter is updated by `make update-readme/release` with the contents of 'CHANGELOG.md'. ALSO, LEAVE AT LEAST 1 BLANK LINE AFTER THIS COMMENT. --\u003e\n\n# Changelog\n\nVersioning complies with [semantic versioning (semver)](http://semver.org/).\n\n\u003c!-- NOTE: An entry template for a new version is automatically added each time `make version` is called. Fill in changes afterwards. --\u003e\n\n* **[v0.2.0](https://github.com/mklement0/whichpm/compare/v0.1.8...v0.2.0)** (2020-01-14):\n  * [enhancement] If duplicate module search paths are found in @INC, a warning is now issued (suppress with `-q`).\n    Technically, this is a breaking change in that previous callers may not anticipate the additional stderr output.\n\n* **[v0.1.8](https://github.com/mklement0/whichpm/compare/v0.1.7...v0.1.8)** (2020-01-14):\n  * [doc] Read-me improvements.\n  * [dev] Dev dependencies updated.\n\n* **[v0.1.7](https://github.com/mklement0/whichpm/compare/v0.1.6...v0.1.7)** (2015-09-16):\n  * [doc] man page improvements.\n\n* **[v0.1.6](https://github.com/mklement0/whichpm/compare/v0.1.5...v0.1.6)** (2015-09-16):\n  * [doc] man page improvements.\n\n* **[v0.1.5](https://github.com/mklement0/whichpm/compare/v0.1.4...v0.1.5)** (2015-09-15):\n  * [dev] Makefile improvements; various other behind-the-scenes tweaks.\n\n* **[v0.1.4](https://github.com/mklement0/whichpm/compare/v0.1.3...v0.1.4)** (2015-09-03):\n  * [dev] Missing dev. dependency marked-man added.\n\n* **[v0.1.3](https://github.com/mklement0/whichpm/compare/v0.1.2...v0.1.3)** (2015-09-02):\n  * [doc] Formatting error in man page corrected.\n\n* **[v0.1.2](https://github.com/mklement0/whichpm/compare/v0.1.1...v0.1.2)** (2015-09-02):\n  * [fix] Fixed too-permissive check for the `-h` / `--help` option.\n\n* **[v0.1.1](https://github.com/mklement0/whichpm/compare/v0.1.0...v0.1.1)** (2015-09-02):\n  * [fix] Fixed broken man-page installation - `man whichpm` should now work on Linux and OSX.\n\n* **v0.1.0** (2015-09-01):\n  * Initial release.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmklement0%2Fwhichpm","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fmklement0%2Fwhichpm","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmklement0%2Fwhichpm/lists"}