Skip site navigation (1)Skip section navigation (2)

FreeBSD Manual Pages

  
 
  

home | help
CPAN::Distroprefs(3)   Perl Programmers	Reference Guide	  CPAN::Distroprefs(3)

NAME
       CPAN::Distroprefs -- read and match distroprefs

SYNOPSIS
	   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;
		   }
	       }
	   }

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

INTERFACE
	   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:

       o   a CPAN::Distroprefs::Result object

       o   "undef", indicating that no prefs files remain to be	found

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

   Common
       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

   Errors
       Error results (warning and fatal) contain:

       msg

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

   Successes
       Success results contain:

       prefs

       an arrayref of CPAN::Distroprefs::Pref objects

PREFS
       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)

LICENSE
       This program is free software; you can redistribute it and/or modify it
       under the same terms as Perl itself.

perl v5.32.0			  2020-06-14		  CPAN::Distroprefs(3)

NAME | SYNOPSIS | DESCRIPTION | INTERFACE | RESULTS | PREFS | LICENSE

Want to link to this manual page? Use this URL:
<https://www.freebsd.org/cgi/man.cgi?query=CPAN::Distroprefs&sektion=3&manpath=FreeBSD+12.2-RELEASE+and+Ports>

home | help