VERS-TOOL(1p)
π VERS-TOOL β the version range tool, bestie edition π
okay so. this is vers-tool, a Version Range tool, and it lives in the User Contributed Perl Documentation section (that's the 1p in VERS-TOOL(1p), iykyk). it is genuinely so good at decoding vers strings and i'm obsessed. let's get into it π«Ά
β¨ NAME β¨
vers-tool β Version Range tool. that's it, that's the name, no cap π
β¨ SYNOPSIS β¨
here's the whole vibe, verbatim:
vers-tool [OPTIONS]...STRING
vers-tool STRING --contains STRING
vers-tool [--help|--man|-v]
Options:
--help Brief help message
--man Full documentation
-v Print version
--contains=VERSION Check if a version is contained within a range
--format=FORMAT Output format
--json JSON output format (--format=json)
-h, --human-readable Human-readable format (--format=human-readable)
Examples:
Decode a vers string:
vers-tool "vers:cpan/1.00|>=2.00|<5.00" | jq
Check if a version is contained within a range:
vers-tool "vers:cpan/1.00|>=2.00|<5.00" --contains "2.20"
Humanize vers:
vers-tool "vers:cpan/1.00|>=2.00|<5.00" --human-readable
cpan
- equal 1.00
- greater than or equal 2.00
- less than 5.00
β¨ OPTIONS β¨
okay so here's every single flag, and yes you need all of them, they're all iconic:
--helpβ short lil help message, the quick version πΈ--manβ the FULL documentation. the whole lore. the director's cut π-vβ print the version. simple. iconic. π--contains=VERSIONβ check if a version is contained within a range π--format=FORMATβ pick your output format β¨--jsonβ JSON output format, which is literally just--format=jsonin a cute outfit π-h,--human-readableβ human-readable format, aka--format=human-readable, for when you want the machine to speak people π¦
β¨ DESCRIPTION β¨
vers-tool Version Range tool. yep. that's the description. she's concise.
so a version range specifier (aka. vers) is a URI string using the vers URI-scheme, and the syntax goes like this:
vers:<versioning-scheme>/<version-constraint>|<version-constraint>|...
vers is the URI-scheme and it's an acronym for "VErsion Range Specifier". cute, right? it spells itself. periodt.
the pipe | is used as a simple separator between version-constraint. every single version-constraint in this pipe-separated list contains a comparator and a version:
<comparator:version>
this list of version-constraint are signposts in the version timeline of a package that specify version intervals. think of them as little mile markers on the road of versions π£οΈβ¨
a version satisfies a version range specifier if it is contained within any of the intervals defined by these version-constraint.
more lore lives here: <https://github.com/package-url/vers-spec>
β¨ EXAMPLES β¨
Decode a vers string:
vers-tool "vers:cpan/1.00|>=2.00|<5.00" | jq
Check if a version is contained within a range:
vers-tool "vers:cpan/1.00|>=2.00|<5.00" --contains "2.20"
Humanize vers:
vers-tool "vers:cpan/1.00|>=2.00|<5.00" --human-readable
cpan
- equal 1.00
- greater than or equal 2.00
- less than 5.00
β¨ AUTHOR β¨
Giuseppe Di Terlizzi <https://metacpan.org/author/gdt> β absolute legend, the main character of this manpage π
β¨ COPYRIGHT AND LICENSE β¨
Copyright Β© 2022-2025 Giuseppe Di Terlizzi <https://metacpan.org/author/gdt>
You may use and distribute this module according to the same terms that Perl is distributed under.
and that's the whole page bestie!! π this version of the doc is perl v5.40.1, dated 2026-01-31, and it belongs to VERS-TOOL(1p). go decode some vers strings, you're gonna eat πβ¨π
π¦ where this page comes from
- ubuntu resolute: liburi-packageurl-perl 2.25-1 Β· Artistic-2.0
- ubuntu stonking: liburi-packageurl-perl 2.25-1 Β· Artistic-2.0
- π girlified by deepseek-ai/DeepSeek-V4.1-Flash on : a language model's rewrite of the original, under its terms