use URI::PackageURL;
# OO-interface
# Encode components in PackageURL string
$purl = URI::PackageURL->new(type => cpan, namespace => 'GDT', name => 'URI-PackageURL', version => '2.21');
say $purl; # pkg:cpan/GDT/URI-PackageURL@2.21
# Parse PackageURL string
$purl = URI::PackageURL->from_string('pkg:cpan/GDT/URI-PackageURL@2.21');
# exported functions
$purl = decode_purl('pkg:cpan/GDT/URI-PackageURL@2.21');
say $purl->type; # cpan
$purl_string = encode_purl(type => cpan, namespace => 'GDT', name => 'URI::PackageURL', version => '2.21');
Inspect and export "purl" string in various formats (JSON, YAML, Data::Dumper, ENV):
$ purl-tool pkg:cpan/GDT/URI-PackageURL@2.21 --json | jq
{
"name": "URI-PackageURL",
"namespace": "GDT",
"qualifiers": {},
"subpath": null,
"type": "cpan",
"version": "2.21"
}
Download package using "purl" string:
$ wget $(purl-tool pkg:cpan/GDT/URI-PackageURL@2.21 --download-url)
Use "purl" string in your shell-scripts:
#!bash
set -e
PURL="pkg:cpan/GDT/URI-PackageURL@2.21"
eval $(purl-tool "$PURL" --env)
echo "Download $PURL_NAME $PURL_VERSION"
wget $PURL_DOWNLOAD_URL
echo "Build and install module $PURL_NAME $PURL_VERSION"
tar xvf $PURL_NAME-$PURL_VERSION.tar.gz
cd $PURL_NAME-$PURL_VERSION
perl Makefile.PL
make && make install
Create on-the-fly a "purl" string:
$ purl-tool --type cpan \
--namespace GDT \
--name URI-PackageURL \
--version 2.21
Using Makefile.PL:
To install URI::PackageURL
distribution, run the following commands.
perl Makefile.PL
make
make test
make install
Using App::cpanminus:
cpanm URI::PackageURL
perldoc URI::PackageURL