Perl6::Junction man page on Fedora

Man page or keyword search:  
man Server   31170 pages
apropos Keyword Search (all sections)
Output format
Fedora logo
[printable version]

Perl6::Junction(3)    User Contributed Perl Documentation   Perl6::Junction(3)

NAME
       Perl6::Junction - Perl6 style Junction operators in Perl5.

SYNOPSIS
	 use Perl6::Junction qw/ all any none one /;

	 if (any(@grant) eq 'su') {
	   ...
	 }

	 if (all($foo, $bar) >= 10) {
	   ...
	 }

	 if (qr/^\d+$/ == all(@answers)) {
	   ...
	 }

	 if (all(@input) <= @limits) {
	   ...
	 }

	 if (none(@pass) eq 'password') {
	   ...
	 }

	 if (one(@answer) == 42) {
	   ...
	 }

DESCRIPTION
       This is a lightweight module which provides 'Junction' operators, the
       most commonly used being "any" and "all".

       Inspired by the Perl6 design docs,
       <http://dev.perl.org/perl6/doc/design/exe/E06.html>.

       Provides a limited subset of the functionality of
       Quantum::Superpositions, see "SEE ALSO" for comment.

       Notice in the "SYNOPSIS" above, that if you want to match against a
       regular expression, you must use "==" or "!=". Not "=~" or "!~". You
       must also use a regex object, such as "qr/\d/", not a plain regex such
       as "/\d/".

SUBROUTINES
   all()
       Returns an object which overloads the following operators:

	 '<',  '<=', '>',  '>=', '==', '!=',
	 'lt', 'le', 'gt', 'ge', 'eq', 'ne',

       Returns true only if all arguments test true according to the operator
       used.

   any()
       Returns an object which overloads the following operators:

	 '<',  '<=', '>',  '>=', '==', '!=',
	 'lt', 'le', 'gt', 'ge', 'eq', 'ne',

       Returns true if any argument tests true according to the operator used.

   none()
       Returns an object which overloads the following operators:

	 '<',  '<=', '>',  '>=', '==', '!=',
	 'lt', 'le', 'gt', 'ge', 'eq', 'ne',

       Returns true only if no argument tests true according to the operator
       used.

   one()
       Returns an object which overloads the following operators:

	 '<',  '<=', '>',  '>=', '==', '!=',
	 'lt', 'le', 'gt', 'ge', 'eq', 'ne',

       Returns true only if one and only one argument tests true according to
       the operator used.

ALTERING JUNCTIONS
       You cannot alter junctions.  Instead, you can create new junctions out
       of old junctions.  You can do this by calling the "values" method on a
       junction.

	my $numbers = any(qw/1 2 3 4 5/);
	print $numbers == 3 ? 'Yes' : 'No';   # Yes

	$numbers = any( grep { $_ != 3 } $numbers->values );
	print $numbers == 3 ? 'Yes' : 'No';   # No

EXPORT
       'all', 'any', 'none', 'one', as requested.

       All subroutines can be called by its fully qualified name, if you don't
       want to export them.

	 use Perl6::Junction;

	 if (Perl6::Junction::any( @questions )) {
	   ...
	 }

WARNING
       When comparing against a regular expression, you must remember to use a
       regular expression object: "qr/\d/" Not "/d/". You must also use either
       "==" or "!=". This is because "=~" and "!~" cannot be overriden.

TO DO
       Add overloading for arithmetic operators, such that this works:

	 $result = any(2,3,4) * 2;

	 if ($result == 8) {...}

SUPPORT / BUGS
       Submit to the CPAN bugtracker <http://rt.cpan.org>

SEE ALSO
       Quantum::Superpositions provides the same functionality as this, and
       more. However, this module provides this limited functionality at a
       much greater runtime speed, with my benchmarks showing between 500% and
       6000% improvment.

       <http://dev.perl.org/perl6/doc/design/exe/E06.html> - "The Wonderful
       World of Junctions".

AUTHOR
       Carl Franks

ACKNOWLEDGEMENTS
       Thanks to "Curtis "Ovid" Poe" for the "ALTERING JUNCTIONS" changes in
       release 0.40000.

COPYRIGHT AND LICENSE
       Copyright 2005, Carl Franks.  All rights reserved.

       This library is free software; you can redistribute it and/or modify it
       under the same terms as Perl itself (perlgpl, perlartistic).

perl v5.14.0			  2008-06-20		    Perl6::Junction(3)
[top]

List of man pages available for Fedora

Copyright (c) for man pages and the logo by the respective OS vendor.

For those who want to learn more, the polarhome community provides shell access and support.

[legal] [privacy] [GNU] [policy] [cookies] [netiquette] [sponsors] [FAQ]
Tweet
Polarhome, production since 1999.
Member of Polarhome portal.
Based on Fawad Halim's script.
....................................................................
Vote for polarhome
Free Shell Accounts :: the biggest list on the net