diff options
author | aaron <aaron@FreeBSD.org> | 2006-06-01 15:11:51 +0800 |
---|---|---|
committer | aaron <aaron@FreeBSD.org> | 2006-06-01 15:11:51 +0800 |
commit | f88829f668e2cd573208c9b0d4fab9ec61531c25 (patch) | |
tree | f566bf56b842b81402e7f53cfd0f380a404b9d7a | |
parent | ee3247b15cfd3502a580436a32ed84f908bff4c5 (diff) | |
download | freebsd-ports-gnome-f88829f668e2cd573208c9b0d4fab9ec61531c25.tar.gz freebsd-ports-gnome-f88829f668e2cd573208c9b0d4fab9ec61531c25.tar.zst freebsd-ports-gnome-f88829f668e2cd573208c9b0d4fab9ec61531c25.zip |
Adding port devel/p5-Class-Multimethods, Support multimethods and function overloading in Perl.
Approved by: tobez (implicit)
-rw-r--r-- | devel/Makefile | 1 | ||||
-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 |
5 files changed, 58 insertions, 0 deletions
diff --git a/devel/Makefile b/devel/Makefile index 660f0a347267..ce2dbaff7f27 100644 --- a/devel/Makefile +++ b/devel/Makefile @@ -798,6 +798,7 @@ SUBDIR += p5-Class-MethodMaker SUBDIR += p5-Class-MethodMapper SUBDIR += p5-Class-MixinFactory + SUBDIR += p5-Class-Multimethods SUBDIR += p5-Class-NamedParms SUBDIR += p5-Class-ObjectTemplate SUBDIR += p5-Class-ObjectTemplate-DB 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 |