r42400 - in /trunk/libsub-wrappackages-perl: ./ debian/ lib/Sub/ t/ t/lib/Banana/ t/lib/Module/ t/lib/Orchard/
jawnsy-guest at users.alioth.debian.org
jawnsy-guest at users.alioth.debian.org
Sat Aug 22 01:34:00 UTC 2009
Author: jawnsy-guest
Date: Sat Aug 22 01:33:17 2009
New Revision: 42400
URL: http://svn.debian.org/wsvn/pkg-perl/?sc=1&rev=42400
Log:
* New upstream release
+ Defer wrapping of modules that aren't yet loaded
Added:
trunk/libsub-wrappackages-perl/ARTISTIC.txt
- copied unchanged from r42399, branches/upstream/libsub-wrappackages-perl/current/ARTISTIC.txt
trunk/libsub-wrappackages-perl/GPL2.txt
- copied unchanged from r42399, branches/upstream/libsub-wrappackages-perl/current/GPL2.txt
trunk/libsub-wrappackages-perl/t/01b_wrap_as_packages_late_loading.t
- copied unchanged from r42399, branches/upstream/libsub-wrappackages-perl/current/t/01b_wrap_as_packages_late_loading.t
trunk/libsub-wrappackages-perl/t/04_wrap_tree_of_packages.t
- copied unchanged from r42399, branches/upstream/libsub-wrappackages-perl/current/t/04_wrap_tree_of_packages.t
trunk/libsub-wrappackages-perl/t/04b_wrap_tree_of_packages_after_loading.t
- copied unchanged from r42399, branches/upstream/libsub-wrappackages-perl/current/t/04b_wrap_tree_of_packages_after_loading.t
trunk/libsub-wrappackages-perl/t/05___DATA__.t
- copied unchanged from r42399, branches/upstream/libsub-wrappackages-perl/current/t/05___DATA__.t
trunk/libsub-wrappackages-perl/t/lib/Banana/
- copied from r42399, branches/upstream/libsub-wrappackages-perl/current/t/lib/Banana/
trunk/libsub-wrappackages-perl/t/lib/Module/
- copied from r42399, branches/upstream/libsub-wrappackages-perl/current/t/lib/Module/
trunk/libsub-wrappackages-perl/t/lib/Orchard/
- copied from r42399, branches/upstream/libsub-wrappackages-perl/current/t/lib/Orchard/
trunk/libsub-wrappackages-perl/t/pod-coverage.t
- copied unchanged from r42399, branches/upstream/libsub-wrappackages-perl/current/t/pod-coverage.t
trunk/libsub-wrappackages-perl/t/pod.t
- copied unchanged from r42399, branches/upstream/libsub-wrappackages-perl/current/t/pod.t
Modified:
trunk/libsub-wrappackages-perl/Changes
trunk/libsub-wrappackages-perl/MANIFEST
trunk/libsub-wrappackages-perl/META.yml
trunk/libsub-wrappackages-perl/Makefile.PL
trunk/libsub-wrappackages-perl/TODO
trunk/libsub-wrappackages-perl/debian/changelog
trunk/libsub-wrappackages-perl/debian/control
trunk/libsub-wrappackages-perl/debian/copyright
trunk/libsub-wrappackages-perl/lib/Sub/WrapPackages.pm
trunk/libsub-wrappackages-perl/t/03_wrap_inherited_in_same_file.t
Modified: trunk/libsub-wrappackages-perl/Changes
URL: http://svn.debian.org/wsvn/pkg-perl/trunk/libsub-wrappackages-perl/Changes?rev=42400&op=diff
==============================================================================
--- trunk/libsub-wrappackages-perl/Changes (original)
+++ trunk/libsub-wrappackages-perl/Changes Sat Aug 22 01:33:17 2009
@@ -1,3 +1,9 @@
-2006-08-02: 1.2: changed how we detect what functions/methods a package defines
-2006-07-26: 1.1: added ability to wrap inherited subs
-2003-11-15: initial release
+2009-08-11 1.3 deferred wrapping of modules that aren't yet loaded;
+ wildcards for modules
+
+2006-08-02 1.2 changed how we detect what functions/methods a package
+ defines
+
+2006-07-26 1.1 added ability to wrap inherited subs
+
+2003-11-15 initial release
Modified: trunk/libsub-wrappackages-perl/MANIFEST
URL: http://svn.debian.org/wsvn/pkg-perl/trunk/libsub-wrappackages-perl/MANIFEST?rev=42400&op=diff
==============================================================================
--- trunk/libsub-wrappackages-perl/MANIFEST (original)
+++ trunk/libsub-wrappackages-perl/MANIFEST Sat Aug 22 01:33:17 2009
@@ -11,4 +11,17 @@
Makefile.PL
t/lib/Banana.pm
t/03_wrap_inherited_in_same_file.t
+t/pod-coverage.t
+t/pod.t
+t/04_wrap_tree_of_packages.t
+t/lib/Banana/Tree.pm
+t/01b_wrap_as_packages_late_loading.t
+t/04b_wrap_tree_of_packages_after_loading.t
+ARTISTIC.txt
+GPL2.txt
+t/lib/Orchard/Tree/Pear/Conference.pm
+t/05___DATA__.t
+t/lib/Module/With/Data/Segment.pm
+t/lib/Module/With/END/Segment.pm
+t/lib/Module/With/Both/Segments.pm
META.yml Module meta-data (added by MakeMaker)
Modified: trunk/libsub-wrappackages-perl/META.yml
URL: http://svn.debian.org/wsvn/pkg-perl/trunk/libsub-wrappackages-perl/META.yml?rev=42400&op=diff
==============================================================================
--- trunk/libsub-wrappackages-perl/META.yml (original)
+++ trunk/libsub-wrappackages-perl/META.yml Sat Aug 22 01:33:17 2009
@@ -1,11 +1,19 @@
-# http://module-build.sourceforge.net/META-spec.html
-#XXXXXXX This is a prototype!!! It will change in the future!!! XXXXX#
-name: Sub-WrapPackages
-version: 1.2
-version_from:
-installdirs: site
+--- #YAML:1.0
+name: Sub-WrapPackages
+version: 1.3
+abstract: ~
+author: []
+license: unknown
+distribution_type: module
+configure_requires:
+ ExtUtils::MakeMaker: 0
requires:
- Hook::LexWrap: 0.2
-
-distribution_type: module
-generated_by: ExtUtils::MakeMaker version 6.17
+ Hook::LexWrap: 0.2
+no_index:
+ directory:
+ - t
+ - inc
+generated_by: ExtUtils::MakeMaker version 6.48
+meta-spec:
+ url: http://module-build.sourceforge.net/META-spec-v1.4.html
+ version: 1.4
Modified: trunk/libsub-wrappackages-perl/Makefile.PL
URL: http://svn.debian.org/wsvn/pkg-perl/trunk/libsub-wrappackages-perl/Makefile.PL?rev=42400&op=diff
==============================================================================
--- trunk/libsub-wrappackages-perl/Makefile.PL (original)
+++ trunk/libsub-wrappackages-perl/Makefile.PL Sat Aug 22 01:33:17 2009
@@ -1,8 +1,15 @@
use ExtUtils::MakeMaker;
WriteMakefile(
- NAME => 'Sub::WrapPackages',
- VERSION => '1.2',
- PREREQ_PM => {
+ NAME => 'Sub::WrapPackages',
+ VERSION_FROM => 'lib/Sub/WrapPackages.pm',
+ PREREQ_PM => {
Hook::LexWrap => 0.20,
}
);
+
+# package MY;
+# sub test {
+# my $text = shift->SUPER::test(@_);
+# $text =~ s/\t(.*test_harness)/\tHARNESS_OPTIONS=j8 $1/;
+# $text;
+# }
Modified: trunk/libsub-wrappackages-perl/TODO
URL: http://svn.debian.org/wsvn/pkg-perl/trunk/libsub-wrappackages-perl/TODO?rev=42400&op=diff
==============================================================================
--- trunk/libsub-wrappackages-perl/TODO (original)
+++ trunk/libsub-wrappackages-perl/TODO Sat Aug 22 01:33:17 2009
@@ -1,1 +1,2 @@
+Match prototypes
Can we do something funky with AUTOLOAD?
Modified: trunk/libsub-wrappackages-perl/debian/changelog
URL: http://svn.debian.org/wsvn/pkg-perl/trunk/libsub-wrappackages-perl/debian/changelog?rev=42400&op=diff
==============================================================================
--- trunk/libsub-wrappackages-perl/debian/changelog (original)
+++ trunk/libsub-wrappackages-perl/debian/changelog Sat Aug 22 01:33:17 2009
@@ -1,4 +1,8 @@
-libsub-wrappackages-perl (1.2-2) UNRELEASED; urgency=low
+libsub-wrappackages-perl (1.3-1) UNRELEASED; urgency=low
+
+ [ Jonathan Yu ]
+ * New upstream release
+ + Defer wrapping of modules that aren't yet loaded
[ gregor herrmann ]
* debian/control: Changed: Switched Vcs-Browser field to ViewSVN
@@ -7,7 +11,7 @@
[ Nathan Handler ]
* debian/watch: Update to ignore development releases.
- -- gregor herrmann <gregoa at debian.org> Sun, 16 Nov 2008 20:47:14 +0100
+ -- Jonathan Yu <frequency at cpan.org> Fri, 21 Aug 2009 17:25:21 -0400
libsub-wrappackages-perl (1.2-1) unstable; urgency=low
Modified: trunk/libsub-wrappackages-perl/debian/control
URL: http://svn.debian.org/wsvn/pkg-perl/trunk/libsub-wrappackages-perl/debian/control?rev=42400&op=diff
==============================================================================
--- trunk/libsub-wrappackages-perl/debian/control (original)
+++ trunk/libsub-wrappackages-perl/debian/control Sat Aug 22 01:33:17 2009
@@ -1,35 +1,30 @@
Source: libsub-wrappackages-perl
Section: perl
Priority: optional
-Build-Depends: debhelper (>= 5.0.0)
-Build-Depends-Indep: perl (>= 5.8.0-7), libhook-lexwrap-perl (>= 0.2)
+Build-Depends: debhelper (>= 7)
+Build-Depends-Indep: perl, libhook-lexwrap-perl
Maintainer: Debian Perl Group <pkg-perl-maintainers at lists.alioth.debian.org>
-Uploaders: Jaldhar H. Vyas <jaldhar at debian.org>
-Standards-Version: 3.7.3
+Uploaders: Jaldhar H. Vyas <jaldhar at debian.org>,
+ Jonathan Yu <frequency at cpan.org>
+Standards-Version: 3.8.3
Homepage: http://search.cpan.org/dist/Sub-WrapPackages/
Vcs-Svn: svn://svn.debian.org/pkg-perl/trunk/libsub-wrappackages-perl/
Vcs-Browser: http://svn.debian.org/viewsvn/pkg-perl/trunk/libsub-wrappackages-perl/
Package: libsub-wrappackages-perl
Architecture: all
-Depends: ${perl:Depends}, ${misc:Depends}, libhook-lexwrap-perl (>= 0.2)
-Description: add wrappers around subroutines in packages
- This is mostly a wrapper around Damian Conwayâs Hook::LexWrap module
- The differences are:
- * no exporting
- We donât export a wrap() function, instead preferring to do all the
- magic when you "use" this module. We just wrap named subroutines,
- no references.
- * the subs and packages arrayrefs
- Any subroutine mentioned in the "subs" parameter will be wrapped.
- Any packages mentioned in the "packages" parameter will have all their
+Depends: ${perl:Depends}, ${misc:Depends}, libhook-lexwrap-perl
+Description: Perl module to wrap subroutines in packages
+ Sub::WrapPackages is mostly a wrapper around Damian Conway's Hook::LexWrap
+ module. The differences are:
+ .
+ * We donât export a wrap() function, instead preferring to do all the magic
+ when you "use" this module. We wrap named subroutines, no references.
+ * Any subroutine mentioned in the "subs" parameter will be wrapped. Any
+ packages mentioned in the "packages" parameter will have all their
subroutines wrapped.
- * wrap_inherited
- In conjunction with the "packages" arrayref, this wraps all calls
- to inherited methods made through those packages. If you call
- those methods directly in the superclass then they are not
- affected.
- * parameters passed to your subs
- Your pre-wrapper will be passed the wrapped subroutineâs name, and all the
+ * In conjunction with the "packages" arrayref, this wraps all calls to
+ inherited methods made through those packages. If you call those methods
+ directly in the superclass then they are not affected.
+ * Your pre-wrapper will be passed the wrapped subroutineâs name, and all the
parameters to be passed to it.
-
Modified: trunk/libsub-wrappackages-perl/debian/copyright
URL: http://svn.debian.org/wsvn/pkg-perl/trunk/libsub-wrappackages-perl/debian/copyright?rev=42400&op=diff
==============================================================================
--- trunk/libsub-wrappackages-perl/debian/copyright (original)
+++ trunk/libsub-wrappackages-perl/debian/copyright Sat Aug 22 01:33:17 2009
@@ -1,22 +1,38 @@
-This is the debian package for the Sub-WrapPackages module.
-It was created by Jaldhar H. Vyas <jaldhar at debian.org> using dh-make-perl.
+Format-Specification:
+ http://wiki.debian.org/Proposals/CopyrightFormat?action=recall&rev=196
+Upstream-Maintainer: David Cantrell <pause at barnyard.co.uk>
+Upstream-Source: http://search.cpan.org/dist/Sub-WrapPackages/
+Upstream-Name: Sub-WrapPackages
-It was downloaded from http://search.cpan.org/dist/Sub-WrapPackages/
+Files: *
+Copyright: 2003-2009, David Cantrell <david at cantrell.org.uk>
+License-Alias: Perl
+License: Artistic | GPL-2+
-Upstream author: David Cantrell <david at cantrell.org.uk>
+Files: debian/*
+Copyright: 2009, Jonathan Yu <frequency at cpan.org>
+ 2008, Jaldhar H. Vyas <jaldhar at debian.org>
+License: Artistic | GPL-1+
-Copyright 2003 - 2006 David Cantrell
+License: Artistic
+ This program is free software; you can redistribute it and/or modify
+ it under the terms of the Artistic License, which comes with Perl.
+ On Debian GNU/Linux systems, the complete text of the Artistic License
+ can be found in `/usr/share/common-licenses/Artistic'
-This module is free-as-in-speech software, and may be used, distributed,
-and modified under the same terms as Perl itself.
+License: GPL-1+
+ This program is free software; you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation; either version 1, or (at your option)
+ any later version.
+ On Debian GNU/Linux systems, the complete text of the GNU General
+ Public License can be found in `/usr/share/common-licenses/GPL'
-a) the GNU General Public License as published by the Free Software Foundation;
- either version 1, or (at your option) any later version, or
+License: GPL-2+
+ This program is free software; you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation; either version 2, or (at your option)
+ any later version.
+ On Debian GNU/Linux systems, the complete text of the GNU General
+ Public License can be found in `/usr/share/common-licenses/GPL-2'
-b) the "Artistic License"
-
-The full text of these licenses is available on Debian systems in
-/usr/share/common-licenses/
-
-The Debian packaging is (C) 2008, Jaldhar H. Vyas <jaldhar at debian.org> and
-is licensed under the same terms as the software itself (see above).
Modified: trunk/libsub-wrappackages-perl/lib/Sub/WrapPackages.pm
URL: http://svn.debian.org/wsvn/pkg-perl/trunk/libsub-wrappackages-perl/lib/Sub/WrapPackages.pm?rev=42400&op=diff
==============================================================================
--- trunk/libsub-wrappackages-perl/lib/Sub/WrapPackages.pm (original)
+++ trunk/libsub-wrappackages-perl/lib/Sub/WrapPackages.pm Sat Aug 22 01:33:17 2009
@@ -5,9 +5,9 @@
use vars qw($VERSION);
-use Data::Dumper;
-
-$VERSION = '1.2';
+$VERSION = '1.3';
+
+use Hook::LexWrap;
=head1 NAME
@@ -16,18 +16,20 @@
=head1 SYNOPSIS
- use Sub::WrapPackages (
- packages => [qw(Foo Bar)], # wrap all Foo::* and Bar::*
- subs => [qw(Baz::a, Baz::b)], # wrap these two subs as well
- wrap_inherited => 1, # and wrap any methods
- # inherited by Foo and Bar
- pre => sub {
- print "called $_[0] with params ".
- join(', ', @_[1..$#_])."\n";
- },
- post => sub {
- print "$_[0] returned $_[1]\n";
- },
+ use Sub::WrapPackages
+ packages => [qw(Foo Bar Baz::*)], # wrap all subs in Foo and Bar
+ # and any Baz::* packages
+ subs => [qw(Barf::a, Barf::b)], # wrap these two subs as well
+ wrap_inherited => 1, # and wrap any methods
+ # inherited by Foo, Bar, or
+ # Baz::*
+ pre => sub {
+ print "called $_[0] with params ".
+ join(', ', @_[1..$#_])."\n";
+ },
+ post => sub {
+ print "$_[0] returned $_[1]\n";
+ };
=head1 DESCRIPTION
@@ -47,7 +49,18 @@
In the synopsis above, you will see two named parameters, C<subs> and
C<packages>. Any subroutine mentioned in C<subs> will be wrapped. Any
-packages mentioned in C<packages> will have all their subroutines wrapped.
+packages mentioned in C<packages> will have all their subroutines wrapped,
+including any that they import.
+
+Any subroutines mentioned in 'subs' must already exist - ie their modules
+must be loaded - at the time you try to wrap them. Otherwise the order in
+which modules are loaded doesn't matter due to Stunt Code.
+
+Note, however, that if a module exports a subroutine at load-time using
+C<import> then that sub will be wrapped in the exporting module but not in
+the importing module. This is because import() runs before we get a chance
+to fiddle with things. The code for deferred fiddlage isn't re-entrant.
+It's probably horribly fragile in all kinds of other ways too.
=item wrap_inherited
@@ -84,9 +97,17 @@
I like to know who's using my code. All comments, including constructive
criticism, are welcome. Please email me.
-=head1 AUTHOR and CREDITS
-
-David Cantrell E<lt>F<david at cantrell.org.uk>E<gt>
+=head1 SOURCE CODE REPOSITORY
+
+L<http://www.cantrell.org.uk/cgit/cgit.cgi/perlmodules/>
+
+=head1 COPYRIGHT and LICENCE
+
+Copyright 2003-2009 David Cantrell E<lt>F<david at cantrell.org.uk>E<gt>
+
+This software is free-as-in-speech software, and may be used, distributed, and modified under the terms of either the GNU General Public Licence version 2 or the Artistic Licence. It's up to you which one you use. The full text of the licences can be found in the files GPL2.txt and ARTISTIC.txt, respectively.
+
+=head1 THANKS TO
Thanks also to Adam Trickett who thought this was a jolly good idea,
Tom Hukins who prompted me to add support for inherited methods, and Ed
@@ -96,71 +117,118 @@
Thanks to Tom Hukins for sending in a test case for the situation when
a class and a subclass are both defined in the same file.
-=head1 COPYRIGHT and LICENCE
-
-Copyright 2003 - 2006 David Cantrell
-
-This module is free-as-in-speech software, and may be used, distributed,
-and modified under the same terms as Perl itself.
+Thanks to Dagfinn Ilmari Mannsaker for help with the craziness for
+fiddling with modules that haven't yet been loaded.
=cut
-use Hook::LexWrap;
-
sub import {
- my $i_am_weasel = shift;
- wrapsubs(@_) if(@_);
-}
-
-sub subs_in_packages {
+ shift;
+ _wrapsubs(@_) if(@_);
+}
+
+sub _subs_in_packages {
my @targets = map { $_.'::' } @_;
my @subs;
foreach my $package (@targets) {
- no strict;
+ no strict;
while(my($k, $v) = each(%{$package})) {
- push @subs, $package.$k if(defined(&{$v}));
- }
+ push @subs, $package.$k if(defined(&{$v}));
+ }
}
return @subs;
}
-sub wrapsubs {
+sub _make_magic_inc {
my %params = @_;
+ my $wildcard_packages = [map { s/::.//; $_; } grep { /::\*$/ } @{$params{packages}}];
+ my $nonwildcard_packages = [grep { $_ !~ /::\*$/ } @{$params{packages}}];
+
+ unshift @INC, sub {
+ my($me, $file) = @_;
+ (my $module = $file) =~ s{/}{::}g;
+ $module =~ s/\.pm//;
+ return undef unless(
+ (grep { $module =~ /^$_(::|$)/ } @{$wildcard_packages}) ||
+ (grep { $module eq $_ } @{$nonwildcard_packages})
+ );
+ local @INC = grep { $_ ne $me } @INC;
+ local $/;
+ my @files = grep { -e $_ } map { join('/', $_, $file) } @INC;
+ open(my $fh, $files[0]) || die("Can't locate $file in \@INC\n");
+ my $text = <$fh>;
+ close($fh);
+ %Sub::WrapPackages::params = %params;
+
+ $text =~ /(.*?)(__DATA__|__END__|$)/s;
+ my($code, $trailer) = ($1, $2);
+ $text = $code.qq[
+ ;
+ Sub::WrapPackages::_wrapsubs(
+ %Sub::WrapPackages::params,
+ packages => [qw($module)]
+ );
+ 1;
+ ].$trailer;
+ open($fh, '<', \$text);
+ $fh;
+ };
+}
+
+sub _wrapsubs {
+ my %params = @_;
if(exists($params{packages}) && ref($params{packages}) =~ /^ARRAY/) {
+ my $wildcard_packages = [map { (my $foo = $_) =~ s/::.$//; $foo; } grep { /::\*$/ } @{$params{packages}}];
+ my $nonwildcard_packages = [grep { $_ !~ /::\*$/ } @{$params{packages}}];
+
+ # wrap stuff that's not yet loaded
+ _make_magic_inc(%params);
+
+ # wrap wildcards that *are* loaded
+ if(@{$wildcard_packages}) {
+ foreach my $loaded (map { (my $f = $_) =~ s!/!::!g; $f =~ s/\.pm$//; $f } keys %INC) {
+ my $pattern = '^('.join('|',
+ map { (my $f = $_) =~ s/::\*$/::/; $f } @{$wildcard_packages}
+ ).')';
+ _wrapsubs(%params, packages => [$loaded]) if($loaded =~ /$pattern/);
+ }
+ }
+
+ # wrap non-wildcards that *are* loaded
if($params{wrap_inherited}) {
- foreach my $package (@{$params{packages}}) {
+ foreach my $package (@{$nonwildcard_packages}) {
# FIXME? does this work with 'use base'
my @parents = eval '@'.$package.'::ISA';
# get inherited (but not over-ridden!) subs
my %subs_in_package = map {
s/.*:://; ($_, 1);
- } subs_in_packages($package);
+ } _subs_in_packages($package);
my @subs_to_define = grep {
!exists($subs_in_package{$_})
} map {
s/.*:://; $_;
- } subs_in_packages(@parents);
+ } _subs_in_packages(@parents);
# define them in $package using SUPER
- foreach my $sub (@subs_to_define) {
- no strict;
- *{$package."::$sub"} = eval "
- sub {
- package $package;
+ foreach my $sub (@subs_to_define) {
+ no strict;
+ *{$package."::$sub"} = eval "
+ sub {
+ package $package;
my \$self = shift;
\$self->SUPER::$sub(\@_);
};
- ";
- eval 'package __PACKAGE__';
- # push @{$params{subs}}, $package."::$sub";
- }
+ ";
+ eval 'package __PACKAGE__';
+ # push @{$params{subs}}, $package."::$sub";
+ }
}
}
- push @{$params{subs}}, subs_in_packages(@{$params{packages}});
+ push @{$params{subs}}, _subs_in_packages(@{$params{packages}});
} elsif(exists($params{packages})) {
die("Bad param 'packages'");
}
Modified: trunk/libsub-wrappackages-perl/t/03_wrap_inherited_in_same_file.t
URL: http://svn.debian.org/wsvn/pkg-perl/trunk/libsub-wrappackages-perl/t/03_wrap_inherited_in_same_file.t?rev=42400&op=diff
==============================================================================
--- trunk/libsub-wrappackages-perl/t/03_wrap_inherited_in_same_file.t (original)
+++ trunk/libsub-wrappackages-perl/t/03_wrap_inherited_in_same_file.t Sat Aug 22 01:33:17 2009
@@ -1,7 +1,7 @@
#!perl
use strict;
-use Test::More tests => 2;
+use Test::More tests => 4;
use lib 't/lib';
use Banana;
@@ -9,10 +9,10 @@
use Sub::WrapPackages (
packages => [qw(Banana)],
post => sub {
- ok "Called $_[0]\n";
+ ok(1, "Called $_[0]");
},
wrap_inherited => 1,
);
-Banana->peel;
-Banana->eat;
+ok(Banana->peel() eq 'ready to eat', "got right response");
+ok(Banana->eat() eq 'yum yum', "got right response");
More information about the Pkg-perl-cvs-commits
mailing list