GSP
Quick Navigator

Search Site

Unix VPS
A - Starter
B - Basic
C - Preferred
D - Commercial
MPS - Dedicated
Previous VPSs
* Sign Up! *

Support
Contact Us
Online Help
Handbooks
Domain Status
Man Pages

FAQ
Virtual Servers
Pricing
Billing
Technical

Network
Facilities
Connectivity
Topology Map

Miscellaneous
Server Agreement
Year 2038
Credits
 

USA Flag

 

 

Man Pages
CPAN::Distroprefs(3) Perl Programmers Reference Guide CPAN::Distroprefs(3)

CPAN::Distroprefs -- read and match distroprefs

    use CPAN::Distroprefs;

    my %info = (... distribution/environment info ...);

    my $finder = CPAN::Distroprefs->find($prefs_dir, \%ext_map);

    while (my $result = $finder->next) {

        die $result->as_string if $result->is_fatal;

        warn($result->as_string), next if $result->is_warning;

        for my $pref (@{ $result->prefs }) {
            if ($pref->matches(\%info)) {
                return $pref;
            }
        }
    }

This module encapsulates reading Distroprefs and matching them against CPAN distributions.

    my $finder = CPAN::Distroprefs->find($dir, \%ext_map);

    while (my $result = $finder->next) { ... }

Build an iterator which finds distroprefs files in the tree below the given directory. Within the tree directories matching "m/^[._]/" are pruned.

%ext_map is a hashref whose keys are file extensions and whose values are modules used to load matching files:

    {
        'yml' => 'YAML::Syck',
        'dd'  => 'Data::Dumper',
        ...
    }

Each time "$finder->next" is called, the iterator returns one of two possible values:

  • a CPAN::Distroprefs::Result object
  • "undef", indicating that no prefs files remain to be found

"find()" returns CPAN::Distroprefs::Result objects to indicate success or failure when reading a prefs file.

All results share some common attributes:

type

"success", "warning", or "fatal"

file

the file from which these prefs were read, or to which this error refers (relative filename)

ext

the file's extension, which determines how to load it

dir

the directory the file was read from

abs

the absolute path to the file

Error results (warning and fatal) contain:

msg

the error message (usually either $! or a YAML error)

Success results contain:

prefs

an arrayref of CPAN::Distroprefs::Pref objects

CPAN::Distroprefs::Pref objects represent individual distroprefs documents. They are constructed automatically as part of "success" results from "find()".

data

the pref information as a hashref, suitable for e.g. passing to Kwalify

match_attributes

returns a list of the valid match attributes (see the Distroprefs section in CPAN)

currently: "env perl perlconfig distribution module"

has_any_match

true if this pref has a 'match' attribute at all

has_valid_subkeys

true if this pref has a 'match' attribute and at least one valid match attribute

matches

  if ($pref->matches(\%arg)) { ... }

true if this pref matches the passed-in hashref, which must have a value for each of the "match_attributes" (above)

This program is free software; you can redistribute it and/or modify it under the same terms as Perl itself.
2022-02-19 perl v5.34.1

Search for    or go to Top of page |  Section 3 |  Main Index

Powered by GSP Visit the GSP FreeBSD Man Page Interface.
Output converted with ManDoc.