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

FreeBSD Manual Pages

  
 
  

home | help
Path::FindDev(3)      User Contributed Perl Documentation     Path::FindDev(3)

NAME
       Path::FindDev - Find a development path somewhere in an upper
       hierarchy.

VERSION
       version 0.5.2

DESCRIPTION
       This package is mostly a	glue layer around "Path::IsDev"	with a few
       directory walking tricks.

	   use Path::FindDev qw( find_dev );

	   if (	my $root = find_dev('/some/path/to/something/somewhere')) {
	       print "development root = $root";
	   } else {
	       print "No development root :(";
	   }

FUNCTIONS
   find_dev
	   my $result =	find_dev('/some/path');

       If a "dev" directory is found at, or above, "/some/path", it will be
       returned	as a "Path::Tiny"

       If you pass configurations to import:

	   use Path::FindDev find_dev => { set => $someset };

       Then the	exported "find_dev" will pass that set name to "Path::IsDev".

       Though you should only do this if

       o   the default set is inadequate for your usage

       o   you don't want the set to be	overridden by %ENV

       Additionally, you can call find_dev directly:

	   require Path::FindDev;

	   my $result =	Path::FindDev::find_dev('/some/path');

       Which by	design inhibits	your capacity to specify an alternative	set in
       code.

EXAMPLE	USE-CASES
       Have you	ever found yourself doing

	   use FindBin;
	   use lib "$FindBin::Bin/../../../tlib"

       In a test?

       Have you	found yourself paranoid	of file-system semantics and tried

	   use FindBin;
	   use Path::Tiny qw(path)
	   use lib path($FindBin::Bin)->parent->parent->parent->child('tlib')->stringify;

       Have you	ever done either of the	above in a test, only to find you've
       needed to move the test to a deeper hierarchy, and thus,	need to	re-
       write all your path resolution?

       Have you	ever had this problem for multiple files?

       No more!

	   use FindBin;
	   use Path::FindDev qw(find_dev);
	   use lib find_dev($FindBin::Bin)->child('t','tlib')->stringify;

       ^ Should	work, regardless of which test you put it in, and regardless
       of what $CWD happens to be when you call	it.

AUTHOR
       Kent Fredric <kentfredric@gmail.com>

COPYRIGHT AND LICENSE
       This software is	copyright (c) 2014 by Kent Fredric
       <kentfredric@gmail.com>.

       This is free software; you can redistribute it and/or modify it under
       the same	terms as the Perl 5 programming	language system	itself.

perl v5.32.1			  2014-08-16		      Path::FindDev(3)

NAME | VERSION | DESCRIPTION | FUNCTIONS | EXAMPLE USE-CASES | AUTHOR | COPYRIGHT AND LICENSE

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

home | help