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

FreeBSD Manual Pages

  
 
  

home | help
File::F...xtending(3) User Contributed Perl DocumentationFile::F...xtending(3)

NAME
       File::Find::Object::Rule::Extending - the mini-guide to extending
       File::Find::Object::Rule

VERSION
       version 0.0313

SYNOPSIS
	   package File::Find::Object::Rule::Random;

	   use strict;
	   use warnings;

	   # take useful things	from File::Find::Object::Rule
	   use base 'File::Find::Object::Rule';

	   # and force our crack into the main namespace
	   sub File::Find::Object::Rule::random	() {
	       my $self	= shift()->_force_object;
	       $self->exec( sub	{ rand > 0.5 } );
	   }

	   1;

DESCRIPTION
       File::Find::Object::Rule	inherits File::Find::Rule's extensibility. It
       is now possible to extend it, using the following conventions.

   Declare your	package
	   package File::Find::Object::Rule::Random;

	   use strict;
	   use warnings;

   Inherit methods from	File::Find::Object::Rule
	   # take useful things	from File::Find::Object::Rule
	   use base 'File::Find::Object::Rule';

       Force your madness into the main	package

	   # and force our crack into the main namespace
	   sub File::Find::Object::Rule::random	() {
	       my $self	= shift()->_force_object;
	       $self->exec( sub	{ rand > 0.5 } );
	   }

       Yes, we're being	very cavalier here and defining	things into the	main
       File::Find::Object::Rule	namespace.  This is due	to lack	of
       imaginiation on my part - I simply can't	find a way for the functional
       and oo interface	to work	without	doing this or some kind	of
       inheritance, and	inheritance stops you using two
       File::Find::Object::Rule::Foo modules together.

       For this	reason try and pick distinct names for your extensions.	 If
       this becomes a problem then I may institute a semi-official registry of
       taken names.

   Taking no arguments.
       Note the	null prototype on random.  This	is a cheat for the procedural
       interface to know that your sub takes no	arguments, and so allows this
       to happen:

	find( random =>	in => '.' );

       If you hadn't declared "random" with a null prototype it	would have
       consumed	"in" as	a parameter to it, then	got all	confused as it doesn't
       know about a '.'	rule.

NOTES ABOUT THE	CALLBACK
       The callback can	access the File::Find::Object::Result using
       "$self->finder->item_obj()".

AUTHOR
       Richard Clamp <richardc@unixbeard.net>

COPYRIGHT
       Copyright (C) 2002 Richard Clamp.  All Rights Reserved.

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

SEE ALSO
       File::Find::Object::Rule

       File::Find::::Rule::MMagic was the first	extension module for
       File::Find::Rule, so maybe check	that out.

SUPPORT
   Websites
       The following websites have more	information about this module, and may
       be of help to you. As always, in	addition to those websites please use
       your favorite search engine to discover more resources.

          MetaCPAN

	   A  modern,  open-source  CPAN  search engine, useful	to view	POD in
	   HTML	format.

	   <https://metacpan.org/release/File-Find-Object-Rule>

          RT: CPAN's Bug Tracker

	   The RT (  Request  Tracker  )  website  is  the  default  bug/issue
	   tracking system for CPAN.

	   <https://rt.cpan.org/Public/Dist/Display.html?Name=File-Find-Object-Rule>

          CPANTS

	   The CPANTS is a website that	analyzes the Kwalitee (	code metrics )
	   of a	distribution.

	   <http://cpants.cpanauthors.org/dist/File-Find-Object-Rule>

          CPAN	Testers

	   The	CPAN  Testers  is a network of smoke testers who run automated
	   tests on uploaded CPAN distributions.

	   <http://www.cpantesters.org/distro/F/File-Find-Object-Rule>

          CPAN	Testers	Matrix

	   The CPAN Testers  Matrix  is	 a  website  that  provides  a	visual
	   overview  of	 the  test  results  for  a  distribution  on  various
	   Perls/platforms.

	   <http://matrix.cpantesters.org/?dist=File-Find-Object-Rule>

          CPAN	Testers	Dependencies

	   The CPAN Testers Dependencies is a website that shows  a  chart  of
	   the test results of all dependencies	for a distribution.

	   <http://deps.cpantesters.org/?module=File::Find::Object::Rule>

   Bugs	/ Feature Requests
       Please	report	 any   bugs   or   feature   requests	by   email  to
       "bug-file-find-object-rule  at  rt.cpan.org",  or   through   the   web
       interface							    at
       <https://rt.cpan.org/Public/Bug/Report.html?Queue=File-Find-Object-Rule>.
       You will	be automatically notified of any progress on  the  request  by
       the system.

   Source Code
       The code	is open	to the world, and available for	you to hack on.	Please
       feel  free  to  browse it and play with it, or whatever.	If you want to
       contribute patches, please send me a diff or prod me to pull from  your
       repository :)

       <https://github.com/shlomif/http://bitbucket.org/shlomif/perl-file-find-object-rule>

	 git clone git://github.com/shlomif/http://bitbucket.org/shlomif/perl-file-find-object-rule.git

AUTHORS
          Richard Clamp <richardc@unixbeard.net>

          Andy	Lester andy@petdance.com.

BUGS
       Please  report  any  bugs or feature requests on	the bugtracker website
       <https://github.com/shlomif/http://bitbucket.org/shlomif/perl-file-find-object-rule/issues>

       When submitting a bug or	request, please	include	a test-file or a patch
       to an existing test-file	that illustrates the bug or desired feature.

COPYRIGHT AND LICENSE
       This software is	copyright (c) 2021 by Richard Clamp.

       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			  2022-03-27		 File::F...xtending(3)

Want to link to this manual page? Use this URL:
<https://man.freebsd.org/cgi/man.cgi?query=File::Find::Object::Rule::Extending&sektion=3&manpath=FreeBSD+13.1-RELEASE+and+Ports>

home | help