Skip site navigation (1)Skip section navigation (2)
Date:      Sun, 16 Jul 2006 16:42:45 +0800 (CST)
From:      Gea-Suan Lin <gslin@gslin.org>
To:        FreeBSD-gnats-submit@FreeBSD.org
Cc:        gslin@gslin.org
Subject:   ports/100375: [NEW PORT] devel/p5-Class-Multimethods-Pure: Method-ordered multimethod dispatch
Message-ID:  <20060716084245.E15BA380@netnews.NCTU.edu.tw>
Resent-Message-ID: <200607160850.k6G8oGCZ027899@freefall.freebsd.org>

next in thread | raw e-mail | index | archive | help

>Number:         100375
>Category:       ports
>Synopsis:       [NEW PORT] devel/p5-Class-Multimethods-Pure: Method-ordered multimethod dispatch
>Confidential:   no
>Severity:       non-critical
>Priority:       low
>Responsible:    freebsd-ports-bugs
>State:          open
>Quarter:        
>Keywords:       
>Date-Required:
>Class:          change-request
>Submitter-Id:   current-users
>Arrival-Date:   Sun Jul 16 08:50:15 GMT 2006
>Closed-Date:
>Last-Modified:
>Originator:     Gea-Suan Lin
>Release:        FreeBSD 6.1-RELEASE i386
>Organization:
>Environment:
System: FreeBSD netnews.NCTU.edu.tw 6.1-RELEASE FreeBSD 6.1-RELEASE #0: Sat May 13 03:43:48 CST 2006
>Description:
- Tinderbox log:

  http://tb.gslin.org/logs/4.11-FreeBSD-Perl5/p5-Class-Multimethods-Pure-0.11.log
  http://tb.gslin.org/logs/4.11-FreeBSD-Perl58/p5-Class-Multimethods-Pure-0.11.log
  http://tb.gslin.org/logs/5.5-FreeBSD/p5-Class-Multimethods-Pure-0.11.log
  http://tb.gslin.org/logs/6-STABLE/p5-Class-Multimethods-Pure-0.11.log

You can define multimethods with the "multi" declarator:

    use Class::Multimethods::Pure;

    multi collide => ('Bullet', 'Ship') => sub {
        my ($a, $b) = @_;  ...
    };

    multi collide => ('Ship', 'Asteroid') => sub {
        my ($a, $b) = @_;  ...
    };

It is usually wise to put such declarations within a BEGIN block, so
they behave more like Perl treats subs (you can call them without
parentheses and you can use them before you define them).

WWW:	http://search.cpan.org/dist/Class-Multimethods-Pure/

Generated with FreeBSD Port Tools 0.77
>How-To-Repeat:
>Fix:

--- p5-Class-Multimethods-Pure-0.11.shar begins here ---
# This is a shell archive.  Save it in a file, remove anything before
# this line, and then unpack it by entering "sh file".  Note, it may
# create directories; files and directories will be owned by you and
# have default permissions.
#
# This archive contains:
#
#	p5-Class-Multimethods-Pure
#	p5-Class-Multimethods-Pure/pkg-descr
#	p5-Class-Multimethods-Pure/Makefile
#	p5-Class-Multimethods-Pure/pkg-plist
#	p5-Class-Multimethods-Pure/distinfo
#
echo c - p5-Class-Multimethods-Pure
mkdir -p p5-Class-Multimethods-Pure > /dev/null 2>&1
echo x - p5-Class-Multimethods-Pure/pkg-descr
sed 's/^X//' >p5-Class-Multimethods-Pure/pkg-descr << 'END-of-p5-Class-Multimethods-Pure/pkg-descr'
XYou can define multimethods with the "multi" declarator:
X
X    use Class::Multimethods::Pure;
X
X    multi collide => ('Bullet', 'Ship') => sub {
X        my ($a, $b) = @_;  ...
X    };
X
X    multi collide => ('Ship', 'Asteroid') => sub {
X        my ($a, $b) = @_;  ...
X    };
X
XIt is usually wise to put such declarations within a BEGIN block, so
Xthey behave more like Perl treats subs (you can call them without
Xparentheses and you can use them before you define them).
X
XWWW:	http://search.cpan.org/dist/Class-Multimethods-Pure/
END-of-p5-Class-Multimethods-Pure/pkg-descr
echo x - p5-Class-Multimethods-Pure/Makefile
sed 's/^X//' >p5-Class-Multimethods-Pure/Makefile << 'END-of-p5-Class-Multimethods-Pure/Makefile'
X# New ports collection makefile for:	p5-Class-Multimethods-Pure
X# Date created:		2006-07-16
X# Whom:			Gea-Suan Lin <gslin@gslin.org>
X#
X# $FreeBSD$
X#
X
XPORTNAME=	Class-Multimethods-Pure
XPORTVERSION=	0.11
XCATEGORIES=	devel perl5
XMASTER_SITES=	${MASTER_SITE_PERL_CPAN}
XMASTER_SITE_SUBDIR=	Class
XPKGNAMEPREFIX=	p5-
X
XMAINTAINER=	gslin@gslin.org
XCOMMENT=	Method-ordered multimethod dispatch
X
XPERL_CONFIGURE=	yes
X
XMAN3=		Class::Multimethods::Pure.3
X
X.include <bsd.port.pre.mk>
X
X.if ${PERL_LEVEL} < 500600
XIGNORE=		requires perl 5.6.0 or later. Install lang/perl5.8 then try again
X.endif
X
X.include <bsd.port.post.mk>
END-of-p5-Class-Multimethods-Pure/Makefile
echo x - p5-Class-Multimethods-Pure/pkg-plist
sed 's/^X//' >p5-Class-Multimethods-Pure/pkg-plist << 'END-of-p5-Class-Multimethods-Pure/pkg-plist'
X@comment $FreeBSD$
X%%SITE_PERL%%/%%PERL_ARCH%%/auto/Class/Multimethods/Pure/.packlist
X%%SITE_PERL%%/Class/Multimethods/Pure.pm
X@dirrmtry %%SITE_PERL%%/%%PERL_ARCH%%/auto/Class/Multimethods/Pure
X@dirrmtry %%SITE_PERL%%/%%PERL_ARCH%%/auto/Class/Multimethods
X@dirrmtry %%SITE_PERL%%/%%PERL_ARCH%%/auto/Class
X@dirrmtry %%SITE_PERL%%/Class/Multimethods
X@dirrmtry %%SITE_PERL%%/Class
END-of-p5-Class-Multimethods-Pure/pkg-plist
echo x - p5-Class-Multimethods-Pure/distinfo
sed 's/^X//' >p5-Class-Multimethods-Pure/distinfo << 'END-of-p5-Class-Multimethods-Pure/distinfo'
XMD5 (Class-Multimethods-Pure-0.11.tar.gz) = 611aa6b2fe51331b40f9060fd73fbd30
XSHA256 (Class-Multimethods-Pure-0.11.tar.gz) = f6c98c18870cedd556268f43bb093609f1b00ca5e039de2c09f057d88a2a4b1c
XSIZE (Class-Multimethods-Pure-0.11.tar.gz) = 13056
END-of-p5-Class-Multimethods-Pure/distinfo
exit
--- p5-Class-Multimethods-Pure-0.11.shar ends here ---

>Release-Note:
>Audit-Trail:
>Unformatted:



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?20060716084245.E15BA380>