$OpenBSD: OpenBSD::PackageName.pod,v 1.4 2010/06/30 10:51:04 espie Exp $ =head1 NAME OpenBSD::PackageName - package names handling =head1 SYNOPSIS use OpenBSD::PackageName; $pkgname = OpenBSD::PackageName::url2pkgname($url); ($stem, $version, @flavors) = OpenBSD::PackageName::splitname($pkgname); $stem = OpenBSD::PackageName::splitstem($pkgname); OpenBSD::PackageName::is_stem($stem) == 1; OpenBSD::PackageName::is_stem($pkgname) == 0; @candidates = OpenBSD::PackageName::findstem($stem, @pkgnames); # alternate interface $h = OpenBSD::PackageName::compile_stemlist(@pkgnames); @candidates = $h->findstem($stem); =head1 DESCRIPTION C is the canonical interface to package names handling. =over 4 =item C strip an C<$url> of path elements and C<.tgz> suffixes, yield a canonicalized package name. =item C split a C<$pkgname> into a C<$stem>, a C<$version> number, and a (possibly empty) list of C<@flavors> components. If the name contains no identifiable version, C<$version> will be C. =item C short version of C that extracts only the C<$stem>. =item C check whether a C<$string> is a valid stem, as opposed to a full package name. Useful for commands that take either full names or stems, and need to reconstruct the full name from the stem. =item C look up a C<$stem> into a list of C<@pkgnames>. Return a list of candidates for further processing. =item C alternate interface that is faster when lots of look ups are involved. Compile a list of C<@pkgnames> into an object C<$h> that can be queried using C<$h-Efindstem($stem)>. =back