diff options
author | Aaron Dalton <aaron@FreeBSD.org> | 2006-06-01 07:11:51 +0000 |
---|---|---|
committer | Aaron Dalton <aaron@FreeBSD.org> | 2006-06-01 07:11:51 +0000 |
commit | 2cfe6ef857fd9e03628272a30227beffd1bb96c1 (patch) | |
tree | a8abbbe2faafa45c8637ee57aa5f861388dd03a8 /devel/p5-Class-Multimethods | |
parent | 5ce504f96a413d2147985dc16ebd413dff628346 (diff) | |
download | ports-2cfe6ef857fd9e03628272a30227beffd1bb96c1.tar.gz ports-2cfe6ef857fd9e03628272a30227beffd1bb96c1.zip |
Notes
Diffstat (limited to 'devel/p5-Class-Multimethods')
-rw-r--r-- | devel/p5-Class-Multimethods/Makefile | 22 | ||||
-rw-r--r-- | devel/p5-Class-Multimethods/distinfo | 3 | ||||
-rw-r--r-- | devel/p5-Class-Multimethods/pkg-descr | 26 | ||||
-rw-r--r-- | devel/p5-Class-Multimethods/pkg-plist | 6 |
4 files changed, 57 insertions, 0 deletions
diff --git a/devel/p5-Class-Multimethods/Makefile b/devel/p5-Class-Multimethods/Makefile new file mode 100644 index 000000000000..0b73bd575100 --- /dev/null +++ b/devel/p5-Class-Multimethods/Makefile @@ -0,0 +1,22 @@ +# New ports collection makefile for: p5-Class-Multimethods +# Date created: 01 Jun 2006 +# Whom: Aaron Dalton <aaron@FreeBSD.org> +# +# $FreeBSD$ +# + +PORTNAME= Class-Multimethods +PORTVERSION= 1.70 +CATEGORIES= devel perl5 +MASTER_SITES= ${MASTER_SITE_PERL_CPAN} +MASTER_SITE_SUBDIR= Class +PKGNAMEPREFIX= p5- + +MAINTAINER= aaron@FreeBSD.org +COMMENT= Support multimethods and function overloading in Perl + +MAN3= Class::Multimethods.3 + +PERL_CONFIGURE= yes + +.include <bsd.port.mk> diff --git a/devel/p5-Class-Multimethods/distinfo b/devel/p5-Class-Multimethods/distinfo new file mode 100644 index 000000000000..b9d14d716a6d --- /dev/null +++ b/devel/p5-Class-Multimethods/distinfo @@ -0,0 +1,3 @@ +MD5 (Class-Multimethods-1.70.tar.gz) = 5fdc79daa81b102b956b1a61531fd6a7 +SHA256 (Class-Multimethods-1.70.tar.gz) = e6f2fe15530d9e03629c6f42d538bbf81419965dc47094fd0e36ce8302069c23 +SIZE (Class-Multimethods-1.70.tar.gz) = 28316 diff --git a/devel/p5-Class-Multimethods/pkg-descr b/devel/p5-Class-Multimethods/pkg-descr new file mode 100644 index 000000000000..6a40c87cf79b --- /dev/null +++ b/devel/p5-Class-Multimethods/pkg-descr @@ -0,0 +1,26 @@ +The Class:Multimethod module exports a subroutine (&multimethod) that can +be used to declare other subroutines that are dispatched using a algorithm +different from the normal Perl subroutine or method dispatch mechanism. + +Normal Perl subroutines are dispatched by finding the appropriately-named +subroutine in the current (or specified) package and calling that. Normal +Perl methods are dispatched by attempting to find the appropriately-named +subroutine in the package into which the invoking object is blessed or, +failing that, recursively searching for it in the packages listed in the +appropriate @ISA arrays. + +Class::Multimethods multimethods are dispatched quite differently. The +dispatch mechanism looks at the classes or types of each argument to the +multimethod (by calling ref on each) and determines the "closest" matching +variant of the multimethod, according to the argument types specified in +the variants' definitions (see "Finding the "nearest" multimethod" for a +definition of "closest"). + +The result is something akin to C++'s function overloading, but more +intelligent, since multimethods take the inheritance relationships of each +argument into account. Another way of thinking of the mechanism is that it +performs polymorphic dispatch on every argument of a method, not just the +first. + +WWW: http://search.cpan.org/dist/Class-Multimethods +Author: Damian Conway <damian@conway.org> diff --git a/devel/p5-Class-Multimethods/pkg-plist b/devel/p5-Class-Multimethods/pkg-plist new file mode 100644 index 000000000000..1bcaf7f3c326 --- /dev/null +++ b/devel/p5-Class-Multimethods/pkg-plist @@ -0,0 +1,6 @@ +%%SITE_PERL%%/Class/Multimethods.pm +%%SITE_PERL%%/Class/Multimethods.pod +%%SITE_PERL%%/%%PERL_ARCH%%/auto/Class/Multimethods/.packlist +@dirrm %%SITE_PERL%%/%%PERL_ARCH%%/auto/Class/Multimethods +@dirrmtry %%SITE_PERL%%/%%PERL_ARCH%%/auto/Class +@dirrmtry %%SITE_PERL%%/Class |